es6中定义变量使用let关键字:
let的特性:
一,不能重复定义变量
let name = “李秋菊”
let name = 小鹏 (报错)
二,存在块级作用域:{
let num=12;
}
console.log(num)(会报错)
扩展:js中循环结构for(){} while(){} do{}while()
选择结构if(){} if(){}else if(){}elseif(){}.....else{}
函数:function fun_name(){}
三,没有变量提升:console.log(color)
var color='red' 会报underfined
console.log(color)
let color ='red' 会报错
四,不存在作用域问题
2022.3.9
1.const:(用来声明常量的)
什么是常量:就是固定不变的量在开发过程中当一个变量在声明以后
不被改变
语法:const 常量名称 = 值
注意:(尽量用大写)
1.常量的值一旦被定义不能被修改
2,常量名称一般是用大写
3,常量在定义的时候必须赋值
4,不允许重复定义的
5,块级作用域
6,const定义对象或数组时可以修改对象或数组中的元素
不能直接修改值
2.结构赋值
2022。3.10
一,不完全结构
let [a,b,c] = [10,15,17,23,31] 结果为a=10 b=15 c=17
1,变量比等号右侧的值少,且没有其他特殊处理的话,多出的值
2,变量名比等号右侧的值多,多出的变量名值为undefined
let [a1,b1,c1] = [10,15] 结果为a1=10 b1=15 c1=undefined
3,剩余运算符(...),会将剩下的值以数组的方式储存到c2变量中
let [a2,b2...c2] = [10,15,17,23,31] 结果为a2=10 b2=15 c2=17,23,31
4,默认值,当等号左侧的变量设置了默认值在等号右侧又可以找到匹配的值,
那么变量的值使用等号右侧匹配的值。
let [a3,b3,c3='default'] = [10,15,'zhangsan']
c3的结果为:zhangsan
let [test = 12] = [undefined]; //test的结果为12
let [test1 = 12] = [null]; //test1的结果为null
二,对象的结构赋值
1,js中如何定义对象,对象有属性和值() 属性名:值
let obj = {
name:"张三",
age:18,
sex:1,
study:function(){}
}
//使用对象中的某个值 对象名称.属性名
obj.age //访问对象的属性
obj.study() //调用方法
2.对象结构赋值,等号左侧要使用花括号{}包裹变量名,
变量名要和对象中要结构的属性名保持一致,
等号右侧就是要结构的对像
let obj1= {
name:"张三",
age:18,
sex:1,
study:function(){}
}
let {name,age} = obj1
console.log(name);
复习js中运算符:帮助我们完成业务逻辑
运算符的分类:
算数运算符:+ - * / % ( ++ -- 注意:参与与运算的是一个变量)
var num = 10
num++ //num=11
++num //num=11
num++和++num 对num这个变量来说没有任何区别
var res = ++num //num=11 res =11
var res = num++ //num 11 res=10
15*‘张三’ //结果为NAN
比较运算符
> < >= <= != !==
=(表示赋值,就是把等号右边的变量赋值给等号左边的变量)
==(表示比较,如果两边两边的值相等,返回true,否则返回false,忽略数据类型)
===(表示比较,两边的值和数据类型都相同时,返回true,否则返回false)
赋值运算符
= += -= *= /= %=
a+=b 等价于 a=a+b
逻辑运算符(大多数都会用在条件里边)
&&(只有当两边的条件都为真时,整体返回true,其他情况全返回false)
|| (只有当两边的条件都为假时,整体返回false,其他情况全返回true)
! (非假及真 非真及假)
字符串拼接运算 (变量和字符串拼接)
+
5+5 //10 10+'5' //105
三元运算符(条件?条件为真的执行,条件为假的执行)
运算符扩展
指数运算符 符号:**
5的3次方 5**3
指数赋值运算符 符号:**=
var a= 2;
a**=4 //等价于a=a**4
console.log(a); //a=16