JS基础 —— 数据类型
程序员文章站
2022-03-08 15:09:39
JS数据类型分为简单数据类型(基本数据类型)和复杂数据类型(引用数据类型)。 基本数据类型:Undefined、Null、Boolean、Number、String、Symbol。 引用数据类型:Object。 可以通过typeof操作符判断以上7种数据类型,语法:typeof 变量,返回值如下: ......
js数据类型分为简单数据类型(基本数据类型)和复杂数据类型(引用数据类型)。
基本数据类型:undefined、null、boolean、number、string、symbol。
引用数据类型:object。
可以通过typeof操作符判断以上7种数据类型,语法:typeof 变量,返回值如下:
- "undefined" —— 如果这个值未定义;事实上,如果这个变量未声明,返回值也是undefined - "boolean" —— 如果这个值是布尔值 - "string" —— 如果这个值是字符串 - "number" —— 如果这个值是数值 - "object" —— 如果这个值是对象或null - "symbol" —— 如果这个值是symbol函数生成的 - "function" —— 如果这个值是函数
数据类型
-
undefined类型
- 只有一个值:undefined
- 声明变量后未经初始化,则默认值是undefined;所以没必要将一个变量显性地设置为undefined
-
null类型
- 只有一个值:null
- 空对象指针
- undefined派生自null,所以它们的相等性测试 undefined == null 返回 true
- 与undefined不同的是,只要意在保存对象的变量还没有真正保存对象,就应该明确地让变量初始化为null
-
boolean类型
- 只有两个值:true 和 false
-
其它类型值转换为boolean值,调用转型函数boolean()
数据类型 转换为true值 转换为false值 boolean true false string 非空字符串 空字符串("") number 非0数字值 0和nan object 任何对象 null undefined 无 undefined
-
number类型
- 字面量
- 整数
- 十进制:ddd,d:0~9
- 八进制: 0ddd,d:0~7。严格模式下无效,会导致支持严格模式地js引擎抛出错误
- 十六进制:0xddd,d:0~9及a~f(小写也可以)
- 浮点数值
- 合法写法
- '1.1'
- '0.1'
- '.1' --> 0.1
- '1.' --> 整数 1
- '1.0' --> 整数 1
- 极大极小值,用e表示
- 3.125e7 --> 31250000
- 3e-7 --> 0.0000003
- 最大精度17位
- 0.1 + 0.2 != 0.3
- 合法写法
- 整数
- 数值范围
- number.min_value
- number.max_value
- 超范围显示infinity和-infinity --> number.positive_infinity和number.negative_infinity
- 函数isfinite():参数在极小和极大之间返回true,否则false
- nan
- not a number
- nan == nan 返回 false
- 函数isnan():参数先被转换成number类型,转换后的结果是nan返回true,否则false;参数是对象,会先调用valueof()方法,如果返回值能转换为数值,则进行测试,否则再调用tostring()方法,进行测试
- 数值转换
-
number()
数据类型 number()转换后结果 boolean 1和0 number 无变化 null 0 undefined 0 string 只包含数字(包括前面带正号或负号的情况)--> 十进制数值,如"-123" --> 123,"077" --> 77(不会被认为是八进制);
有效浮点格式 --> 浮点值;十六进制(0x) --> 十进制数值;
其它 --> nanobject valueof()→若是nan(比如object对象)→tostring()→再按以上规则 - parseint()
- 字符串从前往后取数字(符合整数格式),碰到非数字停止
- 第二个参数指定进制,如8,10,16
- parsefloat()
- 同上(符合浮点格式)
- 注:valueof()
- 对象原型方法:返回对象的原始值。
- 查看对象的原始值办法
-
- 字面量
-
string类型
- 字符:16位unicode
- "" 或 ''
- 转义字符:
- 其它类型转换为string类型
- tostring()
- boolean、number、string、object都有tostring()方法
- null、undefined没有tostring()方法
- object.prototype.tostring.call():可以查看数据类型
- 转型函数string()
- 有tostring()方法的调用tostring()
- null --> "null"
- undefined --> "undefined"
- tostring()
- 字符串拼接
- 新开辟空间,拼接字符串,删除原字符串
-
symbol类型
- es6引入的一种新的原始数据类型symbol,表示独一无二的值
- 通过symbol()函数生成,可传入参数用作描述
- 应用:保证属性名独一无二,防止属性名冲突
- symbol()生成的属性名不能被for...in,for...of,object.keys()、object.getownpropertynames()、json.stringify()访问到,但可以用object.getownpropertysymbols(obj)获取
- reflect.ownkeys(obj)也可以返回所有类型的键名,包括常规键名和symbol键名
- object类型
- object 就是一组数据和功能的集合
- 所有对象的基础,如function、array、date
- object每个实例都有:constructor、hasownproperty(propertyname)、ispropertyof(object)、propertyisenumerable(propertyname)、tolocalestring()、tostring()、valueof()
检测数据类型
- 操作符 typeof
- 能检测出的类型:undefined、null、boolean、number、string、object、symbol和函数
- 操作符 instanceof
- 区分具体对象类型,如 [1,2,3] instanceof array --> true ; 1 instanceof number --> true
- null、undefined不行
- 方法 constructor()
- 同instanceof
- 方法 tostring()
- 能检测出的类型:所有
参考
- javascript高级程序设计(v3)nicholas c.zakas著 李松峰 曹力译
- es6标准入门(v3)阮一峰著
- 互联网
上一篇: 【5G核心网】 GTP协议