话说,解构无处不在啊,鄙人自从用了vue写项目以来,总是遇到各路大神莫名其妙的写法,然并未出任何错,查之,然解构也,呜呼哀哉,进而习之. 解构(Destructuring):是将一个数据结构分解为更小的部分的过程.ES6中,从数组和对象中提取值,对变量进行赋值. 解构有什么用处呢?可以大大的简化数组或者对象里面的元素的赋值语句. 数组解构,数组本身并没有发生任何的改变,解构是对新的变量(可能是对象同名属性)赋值. //变量的声明 let [a,b,c] = [1,2,3];//嵌套解构 let
1.let ES6中新增的用于声明变量的关键字. let 声明的变量只在所处于的块级有效. 注意:使用 let 关键字声明的变量才具有块级作用域,var 关键字是不具备这个特点的. 1. 防止循环变量变成全局变量. 2. 不存在变量提升 3. 暂时性死区 if(true){ let a=10; } console.log(a); // a is not defined //防止循环变量变成全局变量 for(var i=0;i<2;i++){ } console.log(i); // i=2(只有
在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/学习. 在JavaScript中,用var申明的变量实际上是有作用域的. 如果一个变量在函数体内部申明,则该变量的作用域范围是整个函数体,在函数体外部,不能被引用. 'use strict'; function foo() { var x = 1; x = x + 1; } x = x + 2; /
一.对象(Object) 1.1 认识对象 对象在JS中狭义对象.广义对象两种. 广义:相当于宏观概念,是狭义内容的升华,高度的提升,范围的拓展.狭义:相当于微观概念,什么是“狭”?因为内容狭隘具体,范围窄所以称为“狭” l 狭义对象 就是用{}这种字面量的形式定义的对象,它是一组属性的无序集合 var obj = { name : "小明", age : 12, sex : "男", hobby : ["足球","刺绣",&
在线编译器:babel.github 在nongjs中使用 'use strict' let a = ; 运行node : node --harmony_destructuring xxx.js 代码块: 用{}包起来的代码块,比如 if for while 特点:只能在代码块里面使用 var 只有函数作用域,可以重复声明, let const 有块级作用域,不可重复声明 封闭空间 ES5: (function() { ; })(); ES6: { let a = ; } 总结:块级作用域,其实
关于ES6 块级作用域 任何一对花括号({})中的语句集都属于一个块,在块中声明的变量在代码块外都是不可访问的,称之为块级作用域,ES5以前没有块级作用域 let let 是ES6新增的声明变量的一种方法,与 var 最明显的区别是 不存在变量提升 产生新的作用域(块级作用域) 在一个作用域中 不允许重复声明 暂时性死区 在一个块级作用域的任何地方 声明过 就不会再访问外面的了 var c = 123;if(true) { console.log(c); let c;} // c is not
ES6 -箭头函数: //es6 中的箭头函数和扩展 //es5的写法 // function add(a,b){ // return a + b; // } // add(1,2); //3 function add1(a,b=1){ if(a==0){ throw new Error('a is zero'); } return a+b; } //console.log(add1(0)) //Uncaught Error: a is zero 主动抛出异常 //严谨模式 function a