亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

弱類型語言javascript開發(fā)中的一些坑實例小結(jié)【變量、函數(shù)、數(shù)組、對象、作用域等】

 更新時間:2019年08月07日 10:01:17   作者:Johnny丶me  
這篇文章主要介紹了弱類型語言javascript開發(fā)中的一些坑,結(jié)合實例形式總結(jié)分析了javascript開發(fā)中關(guān)于變量、函數(shù)、數(shù)組、對象、作用域等相關(guān)知識點常見易錯問題,需要的朋友可以參考下

本文實例講述了弱類型語言javascript開發(fā)中的一些坑。分享給大家供大家參考,具體如下:

測試1: (未聲明變量自動提升為全局變量)

test1();
function test1() {
  function setName() {
    name = '張三'; // 此處沒有var聲明,提升至全局
  }
  setName();
  console.log(name);// '張三'
}

測試2: (函數(shù)內(nèi)部局部變量的變量提升)

test2();
function test2() {
  var a = 1;
  function haha() {
    console.log(a);
    var a=1;
  }
  haha(); // undefined
}

測試3: (給window對象掛載屬性,作用域提升至全局)

test3();
function test3() {
  var b=2;
  function hehe(){
    window.b = 3; // 此時的b為全局變量的b
    console.log(b); // 此時的b是函數(shù)test3()里的b為2
  }
  hehe();
}

測試4: (變量提升,局部作用域的綜合)

test4();
function test4() {
  c = 5;
  function heihei() {
    var c;
    window.c = 3;
    console.log(c); // 函數(shù)heihei內(nèi)的c為undefined
    console.log(window.c); // 3
  }
  heihei();
}

測試5: (數(shù)組的長度的問題)

test5();
function test5() {
  var arr = [];
  arr[0] = '1';
  arr[1] = 'b';
  arr[9] = 100;
  console.log(arr.length); // 10
}

測試6: (等與全等的問題)

test6();
function test6() {
  var a = 1;
  console.log(a++); // 1
  console.log(++a); // 3
  console.log(null == undefined); // true
  console.log(null === undefined);// false
  console.log(1 == "1"); // true
  console.log(1 === "1"); // false
  console.log(NaN === NaN) // false;
}

測試7: (類型相關(guān))

test7();
function test7() {
  console.log(typeof 1); // number
  console.log(typeof "hello"); // string
  console.log(typeof typeof "hello"); // string
  console.log(typeof !!"hello"); // boolean
  console.log(typeof /[0-9]/); // object
  console.log(typeof {}); // object
  console.log(typeof null); // object
  console.log(typeof undefined); // undefined
  console.log(typeof [1, 2, 3]); // object
  console.log(toString.call([1, 2, 3])); // [object Array]
  console.log(typeof function () {}); // function
}

測試8: (parse函數(shù)相關(guān))

test8();
function test8() {
  console.log(parseInt(3.14));// 3
  console.log(parseFloat('3.01aaa'));// 3.01
  console.log(parseInt('aa1.2'));// NaN;
  console.log(parseInt('8.00',16));// 8
  console.log(parseInt('0x8',16));// 8
  console.log(parseInt('8.00',10));// 8
  console.log(parseInt('010',8));// 10
  console.log(parseInt('1000',2));// 1000
}

測試9: (變量提升,函數(shù)提升與return后阻斷執(zhí)行)

test9();
function test9() {
  function bar() {
    return foo;
    foo = 10;
    function foo(){};
  }
  console.log(typeof bar()); // 'function'
}

測試10: (作用域與函數(shù)提升)

test10();
function test10() {
  var foo = 1;
  function bar() {
    foo = 10;
    console.log(typeof foo);
    return;
    function foo(){};
  }
  bar(); // number
  console.log(foo); // 1
}

測試11: (變量提升與函數(shù)提升)

test11();
function test11() {
  console.log(typeof a); // function
  var a = 3;
  function a(){};
  console.log(typeof a); // number
}

測試12: (arguments對象)

test12();
function test12() {
  function foo(a) {
    console.log(a);// 1
    arguments[0] = 2;
    console.log(a);// 2
    console.log(arguments.length);// 3
  }
  foo(1,3,4);
}

測試13: (中間函數(shù)名,直接使用會報錯)

test13();
function test13() {
  var foo = function bar(name) {
    console.log("hello " + name);
  }
  foo("world");
  console.log(bar); // 此處會報錯 bar is not defined
}

測試14: (在js中定時器,最后執(zhí)行,涉及到的知識點是事件循環(huán)和事件隊列)

test14();
function test14() {
  function foo() {
    console.log('I am foo');
  }
  console.log('正常執(zhí)行');
  setTimeout((function(){
    console.log('定時器大灰狼來啦');
  }),0);
  foo();
}

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript操作DOM技巧總結(jié)》、《JavaScript頁面元素操作技巧總結(jié)》、《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • uniapp微信小程序底部動態(tài)tabBar的解決方案(自定義tabBar導航)

    uniapp微信小程序底部動態(tài)tabBar的解決方案(自定義tabBar導航)

    tabBar如果應(yīng)用是一個多tab應(yīng)用,可以通過tabBar配置項指定tab欄的表現(xiàn),以及tab切換時顯示的對應(yīng)頁,下面這篇文章主要給大家介紹了關(guān)于uniapp微信小程序底部動態(tài)tabBar的解決方案,需要的朋友可以參考下
    2022-04-04
  • 正則 js分轉(zhuǎn)元帶千分符號詳解

    正則 js分轉(zhuǎn)元帶千分符號詳解

    下面小編就為大家?guī)硪黄齽t js分轉(zhuǎn)元帶千分符號詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 關(guān)于function類中定義變量this的簡單說明

    關(guān)于function類中定義變量this的簡單說明

    下面小編就為大家?guī)硪黄P(guān)于function類中定義變量this的簡單說明。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • JavaScript設(shè)計模式之單件模式介紹

    JavaScript設(shè)計模式之單件模式介紹

    這篇文章主要介紹了JavaScript設(shè)計模式之單件模式介紹,單件模式,就是靜態(tài)化的訪問中已經(jīng)實例化的對象,這個對象只能通過一個唯一的入口訪問,已經(jīng)實例或待實例化的對象,需要的朋友可以參考下
    2014-12-12
  • js實現(xiàn)上傳圖片之上傳前預(yù)覽圖片

    js實現(xiàn)上傳圖片之上傳前預(yù)覽圖片

    此功能用js實現(xiàn),然后在fileupload控件的change事件中調(diào)用,這樣當用fileupload選擇完圖片以后,圖片就會自動顯示出來了,感興趣的各位可以參考下哈
    2013-03-03
  • 簡單理解js的冒泡排序

    簡單理解js的冒泡排序

    本篇文章主要介紹了JavaScript的冒泡排序,對其進行示例解析,具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • javascript框架設(shè)計之類工廠

    javascript框架設(shè)計之類工廠

    這篇文章主要介紹了javascript框架設(shè)計之類工廠的相關(guān)資料,非常淺顯易懂,有需要的小伙伴可以查看下。
    2015-06-06
  • 超強推薦的js編程中的簡潔寫法收集

    超強推薦的js編程中的簡潔寫法收集

    超強推薦的js編程中的簡潔寫法收集...
    2007-08-08
  • js+html制作簡單日歷的方法

    js+html制作簡單日歷的方法

    這篇文章主要為大家詳細介紹了js html制作簡單日歷的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • JS實現(xiàn)的顏色實時漸變效果完整實例

    JS實現(xiàn)的顏色實時漸變效果完整實例

    這篇文章主要介紹了JS實現(xiàn)的顏色實時漸變效果,結(jié)合實例形式分析了JavaScript結(jié)合時間函數(shù)定時觸發(fā)動態(tài)改變頁面元素屬性的相關(guān)技巧,需要的朋友可以參考下
    2016-03-03

最新評論