es6新增语法介绍

ES6-ES10语法
ES5严格模式
用来消除语法中不合理,不严谨之处,让代码运行更安全,提高编译效率
限定内容
1.必须用var声明变量
2.函数的顶层不再指向window,而是undefined
2.不能定义和eval同名的变量,也不能创建相同的函数
4.禁止使用delete删除
5.禁止使用arguments,calee,caller
6.禁止使用with语句
// "use  strict"
    with(location) {
        console.log(hash)
        console.log(href)
        console.log(pathname)
    }
7.禁止函数参数重名
8禁止对象属性重名
9.禁止使用八进制的关键字
10.不允许在非函数的代码块内
列如:
“use strict"
b=23
console.log(b)
Object方法
1.Object.freeze()冻结一个对象(只能查询)
2.Object.isFrozen()是否冻结对象
3.object.seal()密封一个对象(不能添加和删除)
4.object.isSeal()是否被密封
5.Object.preventExtensions()让一个对象不可被扩展(不能添加)
ES6语法
let const
let类似于var,用来定义变量,但是let没有变量提升,只在代码块内有效
1.没有变量提升 
2.代码块内,可以创建私有变量
if(true){
    let a=12
}
console.log(a)//报错
3.解决事件循环机制问题
for(let i=1; i<5;i++){
    setTimeout(function(){
        console.log(i)
    })
}
4.暂时性死区
只要在块级作用中声明let,他就会绑定在这个区域,不再受外界影响
let a=1
function fun(){
    //暂时性死区
    a=2
    let a
    console.log(a)//报错,只找函数下的a 不去找全局的
}
5不允许重复声明
if(true){
    var a=12
    let a=55
    console.log(a)//报错,不能重复声明
}
const命令
const声明常量,一旦声明,常量的值不能改变
1.const具有let的所有特点,没有变量提升,代码块内可以定义为私有变量,不能重复声明,存在暂时性死区
var a=12
const a=55
console.log(a)//报错,不能重复声明
2.一旦声明,值不能改变
   const pi = 3.14
    console.log(pi)
        // pi = 3.5
    var num = pi * 3
    console.log(pi)报错
    3.本质:如果是基本类型的值,保证的是值不能改变,如果哟是引用类型的值,保证对象的地址不能改变,
    const arr=[1,2,3]
    arr[0]=66
    console.log(arr)//[66,2,3]
    const arr={a:"zxc"}
    console.log(arr)//报错
    面试题:var let和const区别
    1.var有变量提升,let和const没有变量提升
    2.var在函数下是私有变量,let const在代码块呢是私有变量
    3var可以重复定义,let constby不可以重复定义
    4.var 没有暂时性死区,let const具有let的所有特点,没有变量提升,代码块内可以定义为私有变量,不能重复声明,存在暂时性死区
    5.const定义的基本类型值保证值不能改变,引用类型值保证地址不能改变
    声明方法
    var let const function class import
    解构赋值  let [a, b, c] = [1, 2, 3]
    console.log(a)
    console.log(b)
    console.log(c)
    用来快速取出变量,减少语法写作
    例如:
   
    数组结构赋值
    1.解构赋值可以为任何类型,只要结构相对应
    let[a,b,c]=[1,{name:"aa"},[22,33]]
    2.可以缺少变量和值,但是不能类型不对应 
    let[a,b,c]=[1,2]//c是undefined
    let[a,b,]=[1,2,3]//3没有赋给变量
    let[a,b,c]=[1,,3]//b是undefined
    let[a,b,c]={}//报错,数组结构对象
    let[a,b,c]=22//报错,数组解构基本类型值
    3.可以与拓展运算符连用
     let [a, b, c, ...d] = [1, 2, 3, 45, 6, 89]、、扩展运算符只能放置在最后一个变量
     4可以设置模式
         let [a, b, c = 22] = [1, 2, undefined]//替代undefined
  5.对象结构赋值
  var obj={name:"list",age:23}
  let {age,name}=obj
  console.log(age)
  console.log(name)
  给属性重新命名,但是输出原属性名称,则报错
var obj={name:"list",age:23}
  let {age:a,name:b}=obj
  console.log(a)
  console.log(b)
  console.log(age)
  console.log(name)
  其他类型:
  ES6引用对象
  字符串的扩展
  1.includes(字符串,位置)是否找到了匹配值,返回布尔
  2.startWidth()判断是否以某个字符串开头,返回布尔
  3.endWidth()判断是否以某个字符串结尾,返回布尔
  4.repeat()把一个字符串重复n次
  5.padstart(长度,字符串)头补全字符串
  6.padEnd(长度,字符串)尾补全字符串
  consoloe.log("138".padstart(11,"*"))
                摸版字符串
                    摸版字符串是为了让我们拼接字符串,或者读取变量更简单
                    语法
                        1.模板字符串要定义在反单引号里
                        2.调用变量写在${}表达式里
                        3.摸版字符串下支持转义字符,例如:/n
                    执行
                        var name ="李四"
                        `<h1>姓名:${name}</h1>`
                        做运算
                        `<h1>姓名:${3+4}</h1>`
                        做三元表达式
                        `<h1>${age==23? "yes":'no'}<h1>`
                        调用函数
                        `<h1>${name.replace('i','#')}<h1>`
                        执行js的语法
                        alert`123`
                        function fun(){
                            return "zxc"
                        }
                        console.log(`${fun()}`)
数字的扩展
number
1.二进制 用0b或0B开头
2.八进制 用0o或0O开头
3,isNaN()判断是否为数字
4.parseInt()转换成整数
5.parseFloat()转换成浮点数
6.isFinite()是否为一个有限值
7.isInteger()判断是否是整数
数学的扩展                 
属性和方法
1.trunc()去除一个数的小数部分
2.sign()判断一个数是正数,负数,零,正数返回1,负数返回-1,零返回0
3.cbrt()求立方根
4.imul()返回带符号整数的乘积,非数字返回0
5.hypot()返回所有参数的平方和的平方根
6.指数运算符 2**3 //2*2*2=8     
bigInt
js的数字类型存储长度有限,bigint存储长度无限制,所以计算时不用考虑数字的溢出问题,可以计算大数字加法,列如银行的钱数,但是只能存储整形数字
最大整数
定义
var num =23n
类型typeof 66n bigInt
判断10==10n// true
转化BigInt("23")//23
bigInt(true)//1
1n+2n=3,
2+3n//类型不同不能直接计算 
数据类型:number,string,boolean,null,undefined,bigInt,symbol,Object
数组下的扩展
扩展运算符
表示方式:...,用把数组遍历成一个序列
列如:var arr=[1,2,3,4,3,5]
[...arr]
属性和方法
1.from()将对象转换成数组
2.of()将多个参数转换成数组
3.find(函数)返回查找的值,没有返回undefined
4.findIndex(函数)返回查找的位置,没有返回-1
5.fill(值)把值填充整个数组
6.keys()遍历所有key值
7.values()遍历所有value值
8.enties()遍历所有键值对
9.includes()判断是否包含指定值,返回布尔类型
10.copyWithin(替换位置,提取开始位置,结束位置)将数组中的指定值进行交换,
数组的空位
当定义一个数组,数组下没有给赋值,则数组下表存储的是空位,空位不是unddfined和null
,他不能参与其他值转化参与运算,如果非要输出,会默认输出undefined,但是不同方式处理空位不一样,
1.for/in foreach every some都会跳出空位
2.map会让空位保留,但不参与运算
3.for of,string,join把空位视为undefined
正则
正则是用字母,数字,符号组成&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值