1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
{ let a=100; var b=200; } //console.log(a); //a is not defined console.log(b); { var c=[],d=[]; for(let i=0;i<10;i++){ c[i]=function () { console.log(i) }; } for(var j=0;j<10;j++){ d[j]=function () { console.log(j) }; } c[3]();//3 d[3]();//10 } { console.log("let 不存在变量提升"); console.log("const 不存在变量提升") } { console.log("暂时性死区TDZ,本质:块作用域+不存在变量提升"); var tmp=111; if(true) { // tmp="qqq"; //tmp is not defined // console.log(tmp); let tmp; console.log(tmp); } } { console.log("let不允许相同作用域重复申明变量") } { console.log("let实际上为js增加了块级作用域"); function fn1() { let n=5; if(true) { let n=666; } console.log(n);//5 } fn1() } { console.log("const声明常量,一旦声明便不能改变"); console.log("import、export浏览器不支持需要转码"); //跨模块常量 //constants.js // export const A = 1; // export const B = 2; // export const C = 3; //test1.js // import * as constants from './constants'; // console.log(constants.A); // console.log(constants.B); //test2.js // import {A,B} from './constants'; // console.log(A); // console.log(B); } { console.log("全局对象的熟属性"); var e=9; console.log(window.e);//9 let f=10; console.log(window.f);//undifined } |