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

JS 里的数据类型

作者: 3477762e2a91 | 来源:发表于2019-01-08 15:23 被阅读0次

1、JavaScript 的数据类型,共有七种。

数值(number)
字符串(string)
布尔值(boolean)
undefined
null
对象(object)
符号(symbol)ES6新增

通常,数值、字符串、布尔值这三种类型,合称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。

对象则称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。

至于undefined和null,一般将它们看成两个特殊值。

① 数字(number)
JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。
十进制:没有前导0的数值。(整数和小数)
八进制:有前缀0o或0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。(011)
十六进制:有前缀0x或0X的数值。(0x11)
二进制:有前缀0b或0B的数值。(0b11)
科学计数法:(1.23e2)
JavaScript 语言的底层根本没有整数,所有数字都是小数(64位浮点数)。容易造成混淆的是,某些运算只有整数才能完成,此时 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

② 字符串(string)
字符串就是零个或多个排在一起的字符,放在单引号''或双引号""之中。
字符串默认只能写在一行内,分成多行将会报错。
如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠或使用'+'或者反引号"`"

var s='12345\
67890'  //'1234567890'
//或者
var s1='12345'+
'67890'  //1234567890
//或者
var s2=`12345
67890`  //1234567890

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

\0 :null
\b :后退键
\f :换页符
\n :换行符
\r :回车键
\t :制表符
\v :垂直制表符)
\' :单引号
\" :双引号
\\ :反斜杠

③ 布尔值(boolean)

表示真伪的两个值,即true(真)和false(假)
a && b 在 a 和 b 都为 true 时,取值为 true;否则为 false
a || b 在 a 和 b 都为 false 时,取值为 false;否则为 true

④ undefined null
null与undefined都可以表示“没有”,含义非常相似。
null表示空值,即该处的值现在为空。调用函数时,某个参数未设置任何值,这时就可以传入null,表示该参数为空。

undefined表示“未定义”

// 变量声明了,但没有赋值
var i;
i // undefined

// 调用函数时,应该提供的参数没有提供,该参数等于 undefined
function f(x) {
  return x;
}
f() // undefined

// 对象没有赋值的属性
var  o = new Object();
o.p // undefined

// 函数没有返回值时,默认返回 undefined
function f() {}
f() // undefined

⑤ 对象(object)
对象是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。

var a = {
  name:'frank',
  age:18,
  children:'null'
}

key必须为字符串形式,引号可以省略。但是根据标识符规则:1.首字母不能使数字、2.中间不能有空格、3.后边必须是合法字符。

{9a:'wang'}//错误形式
{'9a':'wang'}//正确形式

调用时,有两种方法:点方法和方括号法。

a['name']//正确

当key的命名符合标识符规则时,可以改写为点方法。

a.name//正确,特例

可以对对象中的key进行删除。

delete a['name']
a.name //undefinedd (无value)
'name' in a //false (无key)

当使用:

a['name']=undefined
'name' in a //true

此时,只是更改'name'属性的value值为undefined,所以所以key还在。
遍历对象(for....in...)

for (var key in a) //此时打印出key的值

如果需要打印出value的值

console.log(a[key])//正确方法
//错误方法示范
console.log(a.key)
//此时a.key===a['key'],
//而a中没有'key'这个属性

2、typeof 运算符
typeof运算符可以返回一个值的数据类型。

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

function f() {}
typeof f // "function"
typeof undefined // "undefined"
typeof window // "object"
typeof {} // "object"
typeof [] // "object"
typeof null // "object"
typeof /([a-z])/ //"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/jwtbrqtx.html