美文网首页我爱编程
JS 里的数据类型

JS 里的数据类型

作者: leiuno | 来源:发表于2018-06-09 16:46 被阅读0次

JS 里的数据类型

JavaScript 的数据类型,共有六种。

1、数值(number)
2、字符串(string)
3、布尔值(boolean)
4、undefined
5、null
6、对象(object)

原始类型:number string boolean
复合类型:object
特殊值:undefined null

JS三种方法判断一个值到底是什么类型

1、typeof运算符
数值、字符串、布尔值分别返回number、string、boolean。
注意以下几个案例的typeof的返回值

typeof undefined  //undefined
typeof null  //object
typeof fn  //function

2、instanceof运算符

3、Object.prototype.toString方法

  • 数值(number)

1、整数与浮点数
JS内部,所有的数字都是以64位浮点数形式存储,JS底层语言中没有整数的概念,所有的数字都是小数,即64位浮点数,
因浮点数,不是精确的值,运算时要特别小心

0.1 + 0,2 === 0.3 //false

2、数值的表示法
下面两种情况,JS自动转换为科学计数发
(1)小数点前的数字多于21位

12324234343453454565486450978054789567
1.2324234343453454e+37

(2)小数点后的零多于5个。

.0000000009
9e-10

3、数值的进制

十进制:没有前导0的数值。
八进制:有前缀0o或0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
十六进制:有前缀0x或0X的数值。
二进制:有前缀0b或0B的数值。

默认情况下,JavaScript 内部会自动将八进制、十六进制、二进制转为十进制。

4、特殊数值
(1)JS 内部实际上存在2个0:一个是+0,一个是-0,区别就是64位浮点数表示法的符号位不同。它们是等价的。
只有作为分子时不等价

1/0    //Infinity
1/-0   //-Infinity

(2)NaN,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。

NaN不等于任何值,包括它本身。
NaN与任何数(包括它自己)的运算,得到的都是NaN。
NaN在布尔运算时被当作false。
判断是否是NaN的方法,isNaN(),isNaN只对数值有效,如果传入其他值,会被转为数值

5、正无穷Infinity和负无穷-Infinity

Math.pow(2, 1024)   // Infinity
0/0   //Nan
1/0   //Infinity

Infinity大于一切数值(除了NaN),-Infinity小于一切数值(除了NaN)
Infinity与NaN比较,总是返回false。

  • 字符串(string)

1、string 用单引号或双引号表示
2、空字符串和空格字符串

''.length  //0
' '.length  //1

3、转义符:反斜杠 \

4、多行字符串的写法

//第一种
var x1 = '123\
         234'
//第二种     (推荐)    
var x2 = '123' +
         234'

ES6多行字符串

var x3 = `123
344`
  • 布尔值(boolean)
    1、布尔只有两个值true or false
    2、下面的运算符计算结果会返回布尔值

两元逻辑运算符: && (And),|| (Or)
前置逻辑运算符: ! (Not)
相等运算符:===,!==,==,!=
比较运算符:>,>=,<,<=

3、布尔值转换规则,下面六个值转为false,其他均为true

undefined
null
false
0
NaN
""或''(空字符串)

  • null和undefined
    null与undefined都可以表示“没有”,相等运算符(==)甚至报告两者相等,那null和undefined有什么区别呢?
undefined == null   // true

null 只有一个值null
undefined 只有一个值undefined
变量没有赋值,是undefined
有一个对象,还不想赋值,推荐给一个空值null
非对象,还不想赋值,推荐给一个undefined

  • 对象(object)

1、对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合
2、键名:对象的所有key都是字符串,加不加引号都可以,非字符串的key会自动转为字符串,但不加引号,key必须符合标识符
3、获取属性值
(1) object[‘key’],方括号运算符,键名必须放在引号里面,否则会被当作变量处理。
(2) object.key,此时key是字符串key

4、查看所有属性
Object.keys方法,属性以数组的方式列出

5、删除对象的属性

delete object['key']  //删除后无key,无value
object.key  //undefined
'key' in object  //false

//这种情况,只是把undefined的值赋给key,key还是在的
object['key'] = undefined

6、in运算符
检查对象是否包含某个属性,如果包含就返回true,否则返回false。

var obj = { p: 1 };
'p' in obj // true

in运算符它不能识别哪些属性是对象自身的,哪些属性是继承的。继承的属性也返回true

7、for…in 循环
for...in循环用来遍历一个对象的全部属性。

它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
它不仅遍历对象自身的属性,还遍历继承的属性。

相关文章

  • JS 里的数据类型

    JS 里的数据类型 JS中有七种数据类型,分别是:number,string,boolean,undefined,...

  • JS 里的数据类型转换

    JS 里的数据类型转换 Js中的数据类型一共有7种,即number,string,boolean,underfin...

  • 《JS里的数据类型》

    JS里的数据类型分为 原始数据类型(primitive type) 和 合成数据类型(complex type)...

  • JavaScript数据类型

    JS 里的数据类型 七种数据类型 Number,String,Boolean,Null,Undefined,Sym...

  • JS的类型转换

    JS的数据类型: 首先, JS的数据类型分为基本数据类型和引用数据类型基本数据类型: string number ...

  • JS里的数据类型转换

    上一篇文章(JS里的数据类型)介绍了js中的数据类型。这篇主要介绍数据类型转换。 一、任意类型转字符串 转换成st...

  • JS 里的数据类型转换

    前言:上一篇博客讲到JS里的数据类型,相信大家已经了解到7种数据类型,那么这章将详细深入了解JS的不同数据类型之间...

  • JS里的数据类型转换及小技巧

    前言:之前的博客JS里的数据类型介绍了JS中的各种数据类型,那么可不可以把其他的数据类型转换成特定的一种数据类型呢...

  • JS 里的数据类型

    JS里的数据类型包含七种数据类型:number string boolean symbol undefined n...

  • JS 里的数据类型

    JS 里的数据类型 JavaScript 的数据类型,有7种。 1,数值(number)2,字符串(string)...

网友评论

    本文标题:JS 里的数据类型

    本文链接:https://www.haomeiwen.com/subject/svnteftx.html