数字和字符串(string)
- 示例1和‘1’
- 功能不同,字符串不可以运算,数字不能表示电话号码且不能以0开头。
- 储存形式不同,数字用64位浮点数形式存储,字符串以UTF-8形式存储
存数字
十进制二进制转换,二进制转十六进制(计算机程序员模式--HEX)
存字符(也就是存编号)
- 英文键盘编号。0---48号,A---65号,a---97号
- 国标GB2312,GBK,Unicode(万国码),UTF8(8代表最低8位存一个字符)
js数据类型(四基两空一对象)
- 数字number
- 字符串string
- 布尔bool
- 符号symbol
- 空undefined
- 空null
- 对象object【数组函数和日期属于object,但不属于数据类型】
1.数字number--以64位浮点数的兴衰存储:
- NaN无法表示的数字
- 存储
- 范围和精度
2.字符串string
- ‘1’,“1”,`1`
- 'its ok'(转义写法)="it's ok"=`it's ok`
- 转义+
- 字符串长度
- 字符串下标
3.布尔bool 真或假 保持严谨
- 在if语句中判断真假if(value){...}else{...}
- 5个falsy值undefined,null,0,NaN,'' 5个falsy+false共六个假 其他都是真值''
4.undefined和null
没什么区别
5.symbol 基本不用
*变量声明
搞清楚name和‘name’
*类型声明
6.object 对象
- 定义:无序的数据集合;键值对(key)的集合。
- 细节:键名只能是字符串,不是标识符(identifier)(标识符不能以数字开头),没有数字键名和数字下标,省略引号后只能写标识符且依旧是字符串,因为某些奇怪属性名的存在最好加引号。
- Object.keys(obj)可以得到obj所以key
- 变量做属性名,[]。
- 隐藏属性:js每个对象都有一个隐藏属性,隐藏属性存着一个地址,地址内的共有属性组成的对象就是原型(地址是地址,不是原型)。画内存图。
对象属性之增删改查
- 删 delete obj.xxx; obj['xxx']
- undefined删除属性值,delete删除属性名。
- 'name' in obj===false/true
- 'name' in obj&&obj.name === undefined
2.查
- 查自身属性:Object.keys(obj)
- 查自身属性+共有属性:console.dir(obj)
- 判断属性是自身属性还是共有属性:object.hasOwnProperty('toString')
- 两种方法查看属性:object['key'](优先使用)和obj.key
3.修改或增加
- 直接赋值
- 批量赋值Object.assign(obj,{age:18,gender:'man'})
- 增加或修改共有属性
- 改隐藏属性:
let obj = Object.create(common)
obj.name = 'frank'
let obj2 = Object.create(common)
obj2.name = 'jack'
__proto__代码不推荐。