一、操作符
1、运算符:+ - * / %
隐式转换数值类型
1.1三目运算符
表达式?表达式为true的表达式 : 为false的表达式
1.2比较运算符
返回值是布尔值
> < >= <= == === !=(不相等) !==(不全等)
两个字符串比较的时候,依次比较每一个字符的ASCLL码,第一个字符相等,依次比较下一字符
console.log("9">= "91");/ / false
==运算符的判断流程:
1.都是数值,直接比较
2.一个是数值,一个是字符串,将字符申转换为数值再进行比较3.如果是布尔值,将布尔值转换为数值再进行比较
4.null和undefined进行比较,结果为true
5.引用数据类型比较,先调用valueof()获取原始值(一般是它本身),如果原始值不是基本数据类型,再调用toString()方法
其他一律返回false
1.3赋值运算符
1.4逻辑运算符
逻辑或:返回值是表达式
表达式1||表达式2
表达式1为真,返回表达式1
表达式1为假,返回表达式2
逻辑与:返回值是表达式
表达式1&&·表达式2
表达式1为真,返回表达式2
表达式1为假,返回表达式1
二、语句:
1、If语句;
单分支:if{}
双分支:
if(表达式){
//表达式为真执行的语句
}
else{
//else不能单独存在,表达式为假执行的语句
}
多分支:
练习:
注:typeof(a)中a未定义,是undefinrd,typeof(a)返回string类型
2、switch(表达式1){
case·表达式11:
//执行语句:·表达式1·===·表达式11·为true才会执行
case·表达式22:
//执行语句·:·表达式1·===·表达式22·为true才会执行
...
defalut:
//上面都不满足,执行defalt中的语句
}
三、对象:
创建对象
1.1直接量 {}
1.2 New Object() new 内置构造函数
2、对象中的属性声明
对象中是由多个键值对组成,键值对之间由逗号分隔开,
键值对:出属性名(键名)和属性值(键值)两部分组成,
属性值可以是任意数据类型。
3、获取对象中的属性
3.1、语法:对象名.属性名 比如: obj.name
3.2、[] 对象名[“属性名”]
访问对象中不存在的属性,返回值是undefined
4、给对象添加属性
给对象中不存在的属性赋值
5、修改对象中属性的值
给对象中存在的属性赋值
6、遍历对象中的属性(依次获取对象中的属性)
for...in
四、基本数据类型的包装对象:
String number boolean
给基本数据类型包装对象添加或修改属性是没有意义的,因为包装对象一旦执行完毕,包装对象会立即销毁
五、基本数据类型和引用数据类型的区别:
基本数据类型是存在栈中,
引用数据类型的地址存在栈中,数据存在堆中。