JS 里的数据类型

作者: YukiWeng | 来源:发表于2019-06-14 12:26 被阅读8次

number // 数值,包括整数及小数
string // 字符串
boolean // 布尔值, true false
undefined // 未定义或不存在
null // 空值
object // 包括对象、数组、函数
symbol


number 数值

整数和小数:1 1.1 .1
科学记数法:1.23e2
二进制:0b11
八进制:011(后来 ES5 添加了 0o11 语法)
十六进制:0x11

转换为number的五种方法:

number('1')===1
parseInt('1',10) ===1// 十进制 ,parse意为解析,需重点留意
parseFloat('1.23')===1.23 //小数,用浮点数,浮点数只有十进制形式,故不用再标注
‘1’-0===1 //任何数据-0 均可得到一个number ,快捷常用
+‘1’===1 // + 表示以数字形式取原本的值,+ ‘-1’=== -1

string 字符串

var a='\''
var a='\n' // 回车
var a='\t' // 制表符Tab
var a='\\' // 符号\
//以上字符长度均为1

用反斜杠 \ 来表明此符号不是结束符号
需注意:‘’表示空字符串;‘ ’表示空格字符串

ES6 新加了语法,用反引号` 可以解析反引号内所有内容,多行字符串直接回车即可

var s=`123
456`
// s.length是7,因为包含了回车
var q=`123
 456`
// q.length是8,因为包含了回车和一个空格

转为字符串的三种方法:

.toString
+''  //加上空字符串,若左右有一边是字符串,加号会尝试把左右两边数据转为字符串
window.String()  //全局函数

boolean 布尔值

只有两个值:true false
a && b 在 a 和 b 都为 true 时,取值为 true;否则为 false
a || b 在 a 和 b 都为 false 时,取值为 false;否则为 true

转为布尔的两种方法

Boolear()
!! // 取反再取反 快捷常用

Boolear(1)//true
!!1 //true

除了下面六个值被转为false,其他值都视为true。
undefined
null
false
0
NaN
""''(空字符串,引号中间无空格。需要与空格字符串区别开,前者长度为0,后者长度为1)

注意,空数组([])和空对象({})对应的布尔值,都是true。


undefined 与 null 的区别

规范:如果一个变量没有被赋值,那么这个变量的值就是 undefiend
习俗:
有一个对象object,暂不赋值,可初始设置为null
有一个非对象,暂不赋值,可初始设置为undefined


object 对象

对象是最复杂的数据类型,又可以分成三个子类型:
狭义的对象(object)
数组(array)
函数(function)
(狭义的对象和数组是两种不同的数据组合方式)

object 就是其他几种基本类型(无序地)组合在一起
object 里面可以有 object
object 的 key 一律是字符串,不存在其他类型的 key
object[''] 是合法的
object['key'] 可以写作 object.key
(注意 object.key 与 object[key] 不同)

下面代码,用 delete 将 key 和 value 都清空了。
若直接将person.name=undefined,则key还保留着,只是value被更改。

delete person['name'] // 或者 delete person.name
person.name // undefined 无value
'name' in person //false 无key

用 for ...in 遍历 对象的属性(无序)

var person={name:'wy',gerder:'female'}
for(var key in person){
console.log(key)
console.log(person[key])//此处不能用person.key 
}

typeof

使用 typeof 来查看数据类型

typeof 123 // “number”
typeof '123' // "string"
typeof false // "boolean"

function f(){}
typeof f()
// "function"

typeof undefined // "undefined"

一个变量a,若无声明而直接使用会报错,但若用typeof来检查,则不报错。
可利用此特性

if(typeof a==="undefined"){}  // 由于之前a未声明,此处若不加typeof 则会报错

空数组[ ] 的类型也是object ,可见,js中,数组本质也是一种特殊对象
不过,用 instanceof 运算符可以区分数组和对象

typeof {} //"object"
typeof [] //"object"

var a={};
var b=[];
a instanceof Array //false
b instanceof Array // true

有两个特殊情况要注意,JS的历史遗留问题:

typeof null //"object"
typeof function(){} //"function"

实际上,null的类型应该为null,function的类型应该为对象(object)
(对象类型包括:狭义的对象、数组、函数)

相关文章

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