一.let与cont
在ES6 中新增了两个重要的 JavaScript 关键字: let 和 const。
let 声明的变量只在 let 命令所在的代码块内有效。
const 声明一个只读的常量,一旦声明,常量的值就不能改变。
1.1 let
//声明变量
let a;
let b, c, d;
let e = 100;
let f = 521, g = 'iloveyou', h = [];
//1.变量不能重复声明
// let star ='范世琦';
// let star = "小范";
//2.块儿级作用域全局,函数,eval
// {
// let girl = '小红';
// }
// console.log(girl);
// 3.不存在变量提升
// var song;
// console.log(song);
// var song='今天下雨了';
// let song='今天下雨了';//未定义
// 4.不影响作用域链
// let school = '尚硅谷';
// function fn(){
// console.log(school);
// }
tip:
set只能是数组, 可去重
1.2 cont
cont 定义常量:值不能修改
const 声明一个只读变量,声明之后不允许改变。意味着,一旦声明必须初始化,否则会报错。
//声明常量
// const SCHOOL = '加多宝';
//1.定要赋初始值
// const A;
//2., 般常量使用大写(潜规则)
// const a = 100;
//3.常量的值不能修改
// SCHOOL = ' ATGUIGU' ;
//4.块儿级作用域
// const PLAYER = 'UZI';
// {
// console.log(PLAYER);
// }
//5.对于数组和对象的元素修改,不算做对常量的修改,不会报错
//const TEaM = ['UZI', 'MXLG', 'Ming', 'Letme'];
// TEAM. push('Meiko');
注意:
// var 变量提升
// let 可读可写
// const只读
二.解构赋值
2.1 解构赋值是对赋值运算符的扩展。
他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取。
//ES6 允许按照一定模式从数组和对象中提取值,对变量进行赋值,
//这 被称为解构赋值。
//在数组的解构中,解构的目标若为可遍历对象,皆可进行解构赋值。可遍历对象即实现 Iterator 接口的数据。
//1.数组的结构
// const F4=['小沈阳','刘能','赵四','宋小宝'];
// let [xiao,liu, zhao,song]=F4;
// console.log(xiao);
// console.log(liu);
// console.log(zhao);
// console.log(song);
//2.对象的解构
const zhao = {
name: ' 赵本山',
age: '不详',
xiaopin: function () {
console.log("我可以演小品");
}
};
// let { name, age, xiaopin } = zhao;
// console.log(name);
// console.log(age);
// console.log(xiaopin);
// xiaopin();
// 解构赋值
let {xiaopin}=zhao;
xiaozhao;
三. Symbol
3.1Symbol基本使用
ES6引入了一种新的原始数据类型Symbol, 表示独一无二的值。
它是JavaScript语言的第七种数据类型,是一种类似于字符串的数据类型。
ES6 数据类型除了 Number 、 String 、 Boolean 、 Object、 null 和 undefined ,还新增了 Symbol 。
Symbol特点:
1) Symbol 的值是唯一的,用来解决命名冲突的问题
2) Symbol值不能与其他数据进行运算
3) Symbol 定义的对象属性不能使用for...in...循环遍历,但是可以使用Reflect.ownKeys来获取对象的所有键名
3.2创建Symbol
基本语法:Symbol 函数栈不能用 new 命令,因为 Symbol 是原始数据类型,不是对象。可以接受一个字符串作为参数,为新创建的 Symbol 提供描述,用来显示在控制台或者作为字符串的时候使用,便于区分。
//创建Symbol
// let s = Symbo1();
// console.1og(s, typeof s);
// let s2 = Symbol('范世琦');
// let s3 = Symbol('范世琦');
//Symbol.for创建
// let s4 = Symbol.for('范世琦');
// let s5 = Symbol.for('范世琦');
//不能与其他数据进行运算
// let result = s + 100;
// let result = S > 100;
// let result = s + s;
3.3 Symbol 的方法与属性
Symbol 作为对象属性名时不能用.运算符,要用方括号。因为.运算符后面是字符串,所以取到的是字符串 sy 属性,而不是 Symbol 值 sy 属性。
//声明一个对象
// let methods = {
// up: Symbo1(),
// down: Symbo1()
// };
// game[methods.up] = function () {
// console.log("我可以改变形状");
// }
// game[methods.down] = function () {
// console.log("我可以快速下降!!");
// }
// let youxi = {
// name: "狼人杀",
// [Symbol(' say')]: function () {
// console.log("我可以发言")
// },
// [Symbol(' zibao')]: function () {
// console.log('我可以自爆');
// }
// }
// console.log(youxi);
3.4 Symbol内置值
特别的: Symbol内置值的使用,都是作为某个对象类型的属性去使用


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/46359.html