关于javascript:ES6梳理

31次阅读

共计 1121 个字符,预计需要花费 3 分钟才能阅读完成。

1.CONST
申明常量 不可更改
不属于顶层对象

var str=1
window.str
const str
window.str//undefined

不存在变量晋升

console.log(str)
var str='es6' 不报错 undefined
console.log(str)
const str='es6' 报错 
// 暂时性死区
if(){console.log(str)
var str='es6'// 大括号中报错
}
// 块级作用域
大括号为块级作用域
if(){const str='es6'}
console.log(str)// 报错

根本数据类型会存在栈内存(stack)
援用:堆内存(heap)栈内存中存的是援用地址 所以地址无变动数值是能够扭转的
Object.freeze(援用类型) 不可改 不过只能解冻第一层
如果每一层都解冻要递归

function myFreeze(obj){Object.freeze(obj);
Object.keys(obj).forEach(function(key)){if(typeof obj[key]==='object'){myFreeze(obj[key])
}}}

2 箭头函数
const sum3=(x,y)=>{
return x+y;
}
const sum3=(x,y)=>x+y(只有一个参数小括号也能够不写)
箭头函数内没有 this 指向下层作用域 没有就是 window
箭头函数取不到 arguments
不能是用箭头函数作为构造函数

3 模板字符串
“ 反引号
console.log( 我要学习 ${this.name})变量用 ${}来取

4 解构赋值

const course={
name:'es6',
price:'500'
}
const{name,price}=course
console.log(name,price)
const [a,b,c]=courseArr

重名问题:

const{
name:cname,// 别名
price,
teacher:{name,age}}
console.log(cname,name)

用法

const sum=([a,b,c])=>{console.log(a+b+c)}
sum([1,2,3])
const foo=({name,age,sc='111'})=>{}解构设置默认值 传了依照传值走

函数返回值也能够构造 return

const {name,age}=foo();

JSON 字符串
JSON.parse(a)

5ES6 不能被所有浏览器辨认怎么办(装置 babel)

npm install --save-dev babel-preset-env babel-cli
-D=--save

配置文件:
.babelrc

http://es.xiecheng.live/

正文完
 0