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

JS 里的数据类型

作者: 写代码的海怪 | 来源:发表于2018-11-04 07:53 被阅读13次

数据类型

简单数据类型

number, string, boolean, symbol, undefined, null

复杂数据类型

object

Object 里的类型

Array, Function, Object

Number 类型

整数和浮点数

JavaScript 内部,所以数字都是以64位浮点数形式存储,即使整数也是如此。所以,1和1.0是一样的

1 === 1.0 // true

Javascript 语言的底层根本没有整数,所以数字都是小数。

0.1 + 0.2 === 0.3 // false
0.3 / 0.1 // 2.99999

数值的表示法

科学计数法表示

123e3 // 123000
123-e3 // 0.123

用科学计数法的情况是

  1. 小数点前的数字多于21位
123123123123123123123
  1. 小数点后的0多于5个
0.0000003 // 3e-7

数值的进制

  • 十进制:没有前导的0值
  • 八进制:有前缀0o或0O的数值 010 -> 8
  • 十六进制:有前缀0x或者0X的值
  • 二进制:有前缀0b或0B的数值

Boolean 类型

布尔值就只有 true 和 false 两个值。还有一些简单的运算

a && b
a || b

JS 比较坑的就是别的类型转Boolean,下面总结一下常见的转换。下面6个值都为false,其他都为true

  1. undefined
  2. null
  3. false
  4. 0
  5. NaN
  6. “” 或 ‘’ (空字符串)

String 类型

多行字符串

如果 \ 后现还有空格,那么就是语法错误

'1\
2\
3\
' // '123'

ES6 语法,下面的字符串是包含回车的,len + num(\n)

`1
2
3
`

转义

当要使用一些特殊的字符时,要加上反斜杠来进行转义

'\''

Null, Undefined 类型

undefined和null区别

  1. null 是一个表示“空”的对象,转为数值时为0
  2. undefined是一个表示“此处无定义”的原始值,转为数值时为NaN

例子

  1. 变量没有值 -> undefined
  2. 有一个对象 object ,现在还不想赋值 -> 给他一个 null(推荐)
  3. 有一个非对象,不想给值 -> 给他一个 undefined(推荐)
var n // n -> undefined,说明 n 现在学不确定是什么值
var obj = null // obj -> obj,说明以后这个obj是一个对象

Object

对象是自己

var person = {
    name: 'frank',
    age: 18,
    gender: 'male',
    self: person // 自己 -> undefined
}

key的限制

空字符串

var a = {
    '': 'ok' // ok
}

console.log(a['']) // 'ok'

不加引号

正常来说不加引号也是可以定义一个对象的key-value,而如果不加引号会按照定义变量的规则来定义key的名字

var a = {
    9a: 'yes' // false
    '中文': 'chinese' // true
}

key的操作

删除一个key

delete person['name']

person.name // undefined -> 不存在name属性了

'name' in person // false -> 不存在于person中

如果只是赋值 undefined 那么属性还是存在于对象中

var person = { name: 'ok' }

person.name = undefined

person.name // undefined -> 值没了
'name' in person // true -> key还存在

遍历对象

for … in 循环有两个使用注意点

  • 它遍历的是对象所有可遍历的属性,会跳过不可遍历的属性
  • 它不仅遍历对象自身的属性,还遍历继承的属性
let person = {
    name: 'frank',
    age: 18
}

for (let key in person) {
      console.log(typeof person[key]) // 查看对应的 value 的类型
    console.log(key) // 打印出 key
    console.log(person[key]) // 打印出 key 对应的 value
}

确定类型

typeof

Typeof 运算符可以返回一个值的数据类型

typeof 123 // number
typeof '123' // string
typeof false // boolean
typeof func // function

typeof undefined // undefined
typeof v // undefined

typeof window // object
typeof {} // object
typeof [] // object

typeof null // object

instanceof

相当于仔细去检查Object中的子类型

arr instanceof Array // true
obj instanceof Object // true
func instanceof Function // true

Bug

  • Null 的 typeof 是对象
typeof null // 'object
  • function 的 typeof 是 ‘function’
typeof function // 'function'

with 语句

with (对象) {
    语句;
}

操作同一个对象的多个属性时,提供一些书写的方便

var obj = {
    p1: 1,
    p2: 2
}

with (obj) {
    p1 = 4;
    p2 = 4
}
// 等同于
obj.p1 = 4;
obj.p2 = 5;

注意,如果with区块内部有变量的赋值操作,必须是当前对象已经存在的属性,否则会创造一个当前作用域的全局变量
注意,with区块没有改变作用域,它的内部依然是当前的作用域

var obj = {};
with (obj) {
    p1 = 4;
}

// 这里就创造了一个新的 obj

相关文章

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