当前位置: 首页 > news >正文

织梦行业网站模板太平洋手机官方网站

织梦行业网站模板,太平洋手机官方网站,百度q3财报减亏170亿,软件商店官方下载注意#xff0c;写在开头 function test(x 1) {var x // 不报错console.log(x) } function test1(x 1) {let x 10 // 报错console.log(x) }let的变量名不可以和参数中的名称相同。而var并不限制#xff0c;说白了就是希望你规范使用变量名。 形参原则上数组函数内部的临…注意写在开头 function test(x 1) {var x // 不报错console.log(x) } function test1(x 1) {let x 10 // 报错console.log(x) }let的变量名不可以和参数中的名称相同。而var并不限制说白了就是希望你规范使用变量名。 形参原则上数组函数内部的临时变量但是形参其实在内存中有独立的空间存储。 阮一峰ES6 - let 思考在编写代码时有es5、es6的语法究竟是否有块级作用域 ES6 明确规定如果区块中存在let和const命令这个区块对这些命令声明的变量从一开始就形成了封闭作用域。 1. var关键字可以重复声明 var num1 1; var num1 100; console.log(num1) // 1002. let块级作用域 2.1 同一作用域下不能重复声明无论是let/var/const声明 let num1 1; var num1 100; // 报错 重复定义var a 10; let a 10; // 报错function test(a){let a 10; // 预编译时形参a已定义重复声明报错 }let a 1; function a() { } // 报错let a 1; {function a() { } // 不报错 } // 函数提升是在当前块级作用域下提升// 转译后 use strict;var a 1; {var _a function _a() {}; // 不报错}function test(a) {{let a 10;}console.log(a) // undefined } test()2.2 let不会提升会产生一个暂时性死区在变量声明前访问会报错 var a a; console.log(a) // undefined let x x; // 报错 // 在变量x的声明语句还没有执行完成前就去取x的值导致报错”x 未定义“。 // 这里不要把赋值语句拆分为声明和赋值2步理解以下3种情况 var x 1; {// 此处右的x取的是块级作用域内的// 暂时性死区let x x;console.log(x) // 报错// Uncaught ReferenceError: Cannot access x before initialization }↓ // 转译ES5 use strict;var x 1; {var _x _x;console.log(_x); // undefined }这里注意 因为es5不存在暂时死区。let x x 的问题在于,右侧x是取值并赋值的操作,而这个时候在es6里x并没有完成初始化,所以取值x的时候就会失败。 而var是不存在这种问题的。因为es6严格规定了初始化流程就是变量声明必须初始化且不允许取值。也就是说声明语句不可以有对该变量的引用。 转译并不能百分百还原。对应let转var这里就出现了以上的情况。 有些浏览器不支持块级作用域大括号。 转译结果和babel的版本也有关系有可能转译后去除了大括号或转成IIFE或其他形式。 var x 1; {let x;x x;console.log(x) // undefined }↓ use strict;var x 1; {var _x;_x _x;console.log(_x); // undefined }// 这个本身就是ES5不需要转 var x 1; {x x;console.log(x) // 1 }let a ; a a console.log(a) // undefinedif (true) {// TDZ开始tmp abc; // ReferenceErrorconsole.log(tmp); // ReferenceErrorlet tmp; // TDZ结束console.log(tmp); // undefinedtmp 123;console.log(tmp); // 123 }function bar(x y, y 2) {return [x, y]; }bar(); // 报错 // 参数x默认值等于另一个参数y而此时y还没有声明属于“死区”。如果y的默认值是x就不会报错因为此时x已经声明了。2.3 typeof不再是一个百分之百安全的操作 typeof x; // ReferenceError let x;注意 for (var i 0; i 10; i) {arr[i] function () {console.log(i)} } for (var i 0; i 10; i) {arr[i]() // 打印0-9 } // 第二个for循环里var i重新赋值了恰好是ivar arr []; for (var i 0; i 10; i) {arr[i] function () {console.log(i)} } // 上个for循环var i是全局的退出循环后为10 for (var index 0; index 10; index) {arr[index]() // 10个10 }let是在块中声明的变量每当声明一个function都会传入当前for的块中单独的i进去。也就是说let是块变量在自己的块或者子块中使用。而不是只在函数或全局作用域中使用。立即执行函数是为了将每次的i作为函数作用域中的局部变量传入与外界的i隔离。 // 用let声明由于存在父子级作用域相当于也形成了闭包 var arr []; for (let i 0; i 10; i) {arr[i] function () {console.log(i)} } // 即使index用let打印的也是0-9 for (var index 0; index 10; index) {arr[index]() // 0-9 }// 转译之后 use strict;var arr [];var _loop function _loop(i) {arr[i] function () {console.log(i);}; };for (var i 0; i 10; i) {_loop(i); // 这里立即执行了 }for (var index 0; index 10; index) {arr[index](); // 0-9 }2.4 for循环作用域 for循环的特别之处就是设置循环变量的那部分是一个父作用域而循环体内部是一个单独的子作用域 for (var i 0; i 10; i) {let i a console.log(i) // 10个a // 循环的index i是声明在全局的 } console.log(i) // 10for (let i 0; i 10; i) {// for循环内的块级作用域// for花括号内的块级作用域并不相同let i aconsole.log(i) // 10个a }for (let i 0; i 10; i) {var i a // 报错 // 因为for循环内这里var声明的i会提升到全局// 而for循环条件又用let声明一次i重复声明了console.log(i) }if (1) {let a 1;console.log(a) // 1{let a 10;console.log(a) // 10} }以前遇到的有IIFE里不用关键字声明的吗 let a 1; (function(){a 10; console.log(a) // 10 })() console.log(a) // 10let a 1; (function(){let a 10;console.log(a) // 10 })() console.log(a) // 1 var a; (function () {a 10;console.log(a) // 10 })(); (function () {a 100;console.log(a) // 100 })(); console.log(a) // 100(function () {var a 10;console.log(a) // 10 })(); (function () {var a 100;console.log(a) // 100 })(); console.log(a) // 报错 // Uncaught ReferenceError: a is not defined思考在index.html文件的script标签里编码既有es5的语法又有es6的语法在浏览器中打开时浏览器会将所有代码转译成es6吗 不会转译浏览器不同的版本对es的支持不一样。(现代浏览器基本都支持ES6) 现在普遍兼容es6的语法。但对特殊的语法需要babel转译 包括对象的拓展类的修饰等等这些是需要babel转译的。 块级作用域等于匿名函数的立即调用吗并不块级作用域没有返回值。二者本质不同。 思考总结在块级作用域{}内用let/const声明的和父作用域同名的变量x在转译ES6的时候会被编译成另一变量_x
http://www.pierceye.com/news/596760/

相关文章:

  • 佛山网站制作的公司做文库网站怎么赚钱吗
  • 博客网站 做淘宝客咸阳网站建设推广
  • 佛山手机网站建设优化做网站要多大的画布
  • 网站结构优化包括什么网站建设定制开发
  • 做装修的有那些网站wordpress获取用户位置
  • 找事做网站公司网站网页设计
  • 网站数据哪个网站可以做图片
  • 网站添加google地图阿里云服务器可以访问国外网站吗
  • 大连免费网站制作重庆哪些网站推广公司
  • 查建设工程规划许可证网站广州模板建站公司
  • 怎么做网站的超级链接有哪些做的很漂亮的网站
  • 做旅游网站挣钱吗wordpress 虎嗅网
  • 乐清网站制作的公司php 网站源代码
  • 外国知名个人网站衡阳做网站公司
  • 女人网站源码沈阳大型网站制作公司
  • 河南外贸网站建设中国建设银行密码重置网站
  • 搭建网站是什么专业资阳网络营销顾问招聘
  • 建个门户网站网站开发人员配备
  • 营销型网站建设 上海工程造价
  • 做暧暧暖网站想建个企业网站
  • 南通做外贸的公司网站建筑招聘求职网
  • 网站排名顾问江苏省建设网站首页
  • 青岛找网站建设公司印记室内设计网站
  • 上海网站建设聚众网络网站对域名
  • 可做百科资料参考的网站福州网页定制
  • 开发一个网站需要多长时间高端网站定制开发设计制作
  • 桐乡做网站的公司视频网站建站费用
  • 企业网站建设服务网站制作的困难与解决方案
  • 宜昌营销型网站内存优化大师
  • 做购物网站的费用上海有名的效果图公司