数字和字符串(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无法表示的数字
  • 存储




JavaScriptSerializer 长度 js数字长度限制_js string转long


  • 范围和精度

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


JavaScriptSerializer 长度 js数字长度限制_js string转bigdecimal_02

没什么区别


5.symbol 基本不用


*变量声明


JavaScriptSerializer 长度 js数字长度限制_js string转number_03


搞清楚name和‘name’

*类型声明


JavaScriptSerializer 长度 js数字长度限制_js string转number_04


JavaScriptSerializer 长度 js数字长度限制_js string转long_05


6.object 对象

  • 定义:无序的数据集合;键值对(key)的集合。
  • 细节:键名只能是字符串,不是标识符(identifier)(标识符不能以数字开头),没有数字键名和数字下标,省略引号后只能写标识符且依旧是字符串,因为某些奇怪属性名的存在最好加引号。
  • Object.keys(obj)可以得到obj所以key
  • 变量做属性名,[]。
  • 隐藏属性:js每个对象都有一个隐藏属性,隐藏属性存着一个地址,地址内的共有属性组成的对象就是原型地址是地址,不是原型)。画内存图。

对象属性之增删改查

  1. 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__代码不推荐。