国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

弱類型語言javascript開發中的一些坑實例小結【變量、函數、數組、對象、作用域等】

2019-11-19 11:03:57
字體:
來源:轉載
供稿:網友

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

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

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

測試2: (函數內部局部變量的變量提升)

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是函數test3()里的b為2  }  hehe();}

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

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

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

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: (類型相關)

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函數相關)

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: (變量提升,函數提升與return后阻斷執行)

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

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

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

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

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: (中間函數名,直接使用會報錯)

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

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

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

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

更多關于JavaScript相關內容可查看本站專題:《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript查找算法技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript錯誤與調試技巧總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博爱县| 肇州县| 马山县| 奇台县| 嘉黎县| 库车县| 河间市| 和林格尔县| 水城县| 咸宁市| 河北区| 荣昌县| 安丘市| 尚义县| 高雄县| 福泉市| 巴林左旗| 荥阳市| 青川县| 开远市| 司法| 岑溪市| 农安县| 永和县| 遂昌县| 舞阳县| 丽水市| 达孜县| 海南省| 色达县| 界首市| 江门市| 桦甸市| 保康县| 抚远县| 桐乡市| 简阳市| 弋阳县| 揭阳市| 白城市| 南投县|