js执行单位是一行一行的,每一行为1个语句,语句以一个分号结尾,写一个分号没有加任何东西,js也会识别成语句,下列三个空分号也会被js识别成三个语句
;;;
七种数据类型(请背诵):number string boolean symbol undefined null object
1,数字 number
十进制1开头表示:1 1.1 123e2
二进制0b开头表示:0b11,0b22
八进制0开头表示:011,
十六进制0X开头表示:0X11
NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。NaN不等于任何值,包括它本身
parseInt() 将字符串转为
2,字符串 string
var a='字符串'; 转义符是开始。字符串两边只要有一个是字符串,那么+就是字符串拼接功能, 两边如果都是数字,那么就是算术功能。
- 空字符串:
''
多行字符串: ‘ ’
'hello world' "hello world" 文本字符串
''两个单引号组成空字符串length:0
' '两个单引号中间有空格组成length:1
多行字符串回车表示
var s = '12345' + '67890' // 无回车符号 或 var s = `12345 67890` // 含回车符号
var s2='12345'+'67890'推荐写法
es6 新增反引号
var s=`12345
67890` 这样打印出来字符串是换行 length:11 5后面默认有空格
3,布尔 boolean
分 true和false,区分大小写
a && b 在 a 和 b 都为 true 时,取值为 true;否则为 false
a || b 在 a 和 b 都为 false 时,取值为 false;否则为 true
计算机内部存储:true为1,false为0
4,symbol(符号)
方应杭:「每日一题」JS 中的 Symbol 是什么?zhuanlan.zhihu.com
5,null 6,undefined
都表示没有值,至于 JS 为什么有两个表示「没有值」的东西
null表示一个空,变量的值如果想为null,必须手动设置
var a=null;
undefined表示一个声明了没有赋值的变量,变量只声明的时候值默认是undefined
- (规范)如果一个变量没有被赋值,那么这个变量的值就是 undefiend
- (习俗)如果你想表示一个还没赋值的对象,就用 null。如果你想表示一个还没赋值的字符串/数字/布尔/symbol,就用 undefined(但是实际上你直接 var xxx 一下就行了,不用写 var xxx = undefined)
7,对象 object
- object 就是上面几种基本类型(无序地)组合在一起
- object 里面可以有 object
var person = {
name: 'Frank',
'child': {
name: 'Jack'
}, // 最后这个逗号可有可无
}
- object 的 key 一律是字符串,不存在其他类型的 key
- object[''] 是合法的
- object['key'] 可以写作 object.key
- 注意 object.key 与
object[key]
不同 - delete object['key']
- 'key' in object各种值得集合
各种值组成的集合。哈希表 key value组成 js只支持key字符串表示'key'';'
遍历对象 for in for(val in person) val变量名 person下面的对象
var person = {
'key':value, 访问key 对象.key(key代表属性名person.name)
'name' : 'yu',
'age' : 18
'child' : {'name' : 'yu2', 'age' : 1} 对象中有对象
9a : 5 报错9a不加引号就要以标识符规则来命名 开头不为数字
'9a' : 5 这样不会报错
}
person['name'] 引号不能省略 name命名符合标识符命名规则可以改写person.name
deleat person['name'] 删除
person.name //undefined 无value
'name' in person //false 无key
person,name=undefined 清空value但是key还在
person[name]报错
-object 的 key 一律是字符串,不存在其他类型的 key
-object[''] 是合法的
-object['key'] 可以写作 object.key
-注意 object.key 与 object[key] 不同
object[key]适用于动态取key、key为特殊字符。
object.key访问的是object对象下的key。
object[key]访问的是object数组的下标为key的值(对象是可以以数组形式来访问的)。
object.key这里的key必须是引用值。
object[key]这里的key
必须是字面量。
-delete object['key']
-'key' in object
typeof 操作符