美文网首页
JS 里的数据类型

JS 里的数据类型

作者: 独钓寒江月 | 来源:发表于2019-06-01 19:56 被阅读0次

数据类型分为:数值Number,字符串String,布尔值Boolean,Symbol,Null,Undefined,对象Object

其中,数值,字符串,布尔值为原始类型

对象是最复杂的数据类型,又可以分成三个子类型。

1.狭义的对象(object)
2.数组(array)
3.函数(function)

1.判断数据类型

用typeof运算符判断数据类型,像数值、字符串、布尔值就会分别返回number、string、boolean。
注意以下几个案例的typeof的返回值,比较特殊

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

2.Number

浮点数

JavaScript内部使用64位浮点数,如遇到只有整数才能完成的运算,则转为32位整数。
由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。

0.1 + 0.2 === 0.3
// false
0.3 / 0.1
// 2.9999999999999996
(0.3 - 0.2) === (0.2 - 0.1)
// false

范围精度:-2^53 ~2^53
数值范围 2^-1023 ~2^1024

表示方式:

var a = 1
var a = .1
var a = 1.23e2
Ob11 //二进制
011 //八进制
0x11 //十六进制

特殊数值:

(1)+0与-0
除了做分母分别返回 + Infinity/-Infinity 外,二者可以看作相等。
(2)NaN
表示“非数字”,属于Number,不等于任何值。不论怎么算,都返回一个NaN。
tips 0/0 // NaN
(3)Infinity
使用场景:值过大/值过小/0做分母

与数值相关的全局方法:

(1)parseInt()
基本用法:
1.将字符串转换为整数(一个个依次转,转到不能转为止)
2.接受第二个参数表示进制
parseInt('1000',2) //8
(2)parseFloat()
基本用法:
1.用于将字符串转换为浮点数(一个一个依次转,转到不能转为止)
2.当转换的目标不是字符串(如{})/第一个不能转换为浮点数(如'FF2')/空 的时候,返回NaN
(3)isNaN
用于判断值是否为NaN,只对数值有效。(不是数值?转!)
tips:判断NaN可以利用其唯一不等于自身的特点

function myIsNaN(Value){
return value !==value;}

3.String

每个字符在JS中以 16 位 UTF-16 格式储存,也就是说,JavaScript 的单位字符长度固定为16位长度,即2个字节。比如四字节字符𝌆,浏览器会正确识别这是一个字符,但是 JavaScript 无法识别,会认为这是两个字符。

String表示举例:

var a = 'Hi'
var a = "Hi"
var a = '' //长度为0
var a = ' ' //加空格,长度为1

多行字符串

(1)将一个字符串分成三行写,JavaScript 就会报错。如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠。
但是如果在\后面有空格,浏览器就会报错,而我们却看不出来,容易产生BUG,推荐使用第二种方法。
(2)连接运算符(+)可以连接多个单行字符串,将长字符串拆成多行书写,输出的时候也是单行。

var longString = 'Long '
  + 'long '
  + 'long '
  + 'string';

(3)键盘1旁边的反引号

ES6新增支持这种写法,更简便,可读性没有明显提高。

var s = `Hello
World`

字符串转义

反斜杠(\)在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。

\0 :null
\b :后退
\f :换页
\n :换行
\r :回车
\t :制表符
\v :垂直制表符
' :'
\ :
如果在非特殊字符前面使用反斜杠,则反斜杠会被省略。

字符串的长度

.length属性返回字符串的长度,该属性也是无法改变的。

'\t\n1' 的 length 为 3
'\"' 的 length 为 1

4.Null和Undefined

都表示“没有”。区别在于null是一个表示“空”的玩意,转换数值为0,undefined是一个表示“此处无定义”的原始值,转换后为NaN。

Null典型场景:

1.有一个对象object,现在还不想赋值

Undefined典型场景

1.有一个变量,没有被赋值
2.有一个非对象,不想赋值
3.调用函数,应该提供的参数未提供
4.函数没有返回值时,返回

5.Boolean

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

6.Object(复杂类型)

是一组键值对的集合(key-value)
是一种无序的复合数据集合。

关于键值对

是键名加键值的组合,其中,键名全是字符串,可以是空字符''。
'中文' '9a' 'a b' 这种特殊的,必须加单引号,如果不想加,那么你的键名就要符合标识符规范。

Delete删除Key

可以利用delete删除key。删除后,无key也无value

属性的操作

(1)读取对象的属性
1.点运算 obj.p
2.方括号 obj['p']
注意,如果使用方括号运算符,键名必须放在引号里面,否则会被当作变量处理。
数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符。
(2)查看对象属性
查看一个对象本身的所有属性,可以使用Object.keys方法。

var obj = {
  key1: 1,
  key2: 2
};
Object.keys(obj);
// ['key1', 'key2']

(3)判断是否存在 in
in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false。
(4)属性的遍历 for...in
for...in循环用来遍历一个对象的全部属性。

var obj = {a: 1, b: 2, c: 3};
for (var i in obj) {
  console.log(obj[i]);
}
// 1
// 2
// 3

for...in循环有两个使用注意点。
1.它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
2.它不仅遍历对象自身的属性,还遍历继承的属性。

相关文章

  • 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/wmgatctx.html