2019-05-08javaScript里的的数据类型

javaScript的数据类型,有六种。

基本数据类型:

字符串(string):文本(比如hello)

数值(number):整数和小数(浮点数)(比如123和1.23)

布尔值(boolean):表示真假的两个特殊值,即true(真)和false(假)

undefined:表示未定义的或不存在的,即由于目前没有定义,所以此处暂时没有任何价值

 null:表示空值,即此处的值为空

复杂数据类型:

对象(object):各种值组成的集合

可以分为三个子类型

1.对象(object)

2.数组(array)

3.函数(function)

typeof运算符

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

1.数值,字符串,布尔值,`undefined`分别返回

number,string,boolean,undefined


2.函数返回function


3.null对象返回object

null的类型是object,这是由于历史原因造成的.1995年的 JavaScript 语言第一版,只设计了五种数据类型

(对象、整数、浮点数、字符串和布尔值),没考虑null,只把它当作object的一种特殊值。后来null独立出来,

作为一种单独的数据类型,为了兼容以前的代码,typeof null返回object就没法改变了。


 字符串(string)

1.定义

字符串就是零个或多个排在一起的字符,放在单引号或双引号中

abc

abc

* 多行字符串

如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠。

(注意,反斜杠的后面必须是换行符,而不能有其他字符(比如空格),否则会报错。)


连接运算符(+)可以连接多个单行字符串,将长字符串拆成多行书写,输出的时候也是单行。


输出多行字符串


2.转义

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


  数值(number)

number表示整数和浮点数

1.JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。

所以,1与1.0是相同的,是同一个数。


由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。


2.数值的表示方法

JavaScript 的数值有多种表示方法,可以用字面形式直接表示,

比如35(十进制)和0xFF(十六进制)。


数值也可以采用科学计数法表示


3.数值的进制


默认情况下,JavaScript

内部会自动将八进制、十六进制、二进制转为十进制。


nul和undefined

null:指一个空对象(object),没有赋值

undefined:指一个非对象(数据类型中除了object以外的值),没有赋值

null与undefined都可以表示没有

undef`是派生自null值的,所以undefined==null


布尔值(boolean)

布尔值只有两个值。

布尔值代表“真”和“假”两个状态。“真”用关键字true表示,“假”用关键字false表示。


当值为false时浏览器是不执行该代码,为true时执行,所以可以这样使用,达到网页中控制鼠标点击按钮,

开关状态的切换


对象(object)

对象(object)是 JavaScript语言的核心概念,也是最重要的数据类型。

1.什么是对象?

对象(object):各种值组成的集合


上面代码中,大括号就定义了一个对象,它被赋值给变量obj,所以变量obj就指向一个对象。该对象内部

包含两个键值对,

第一个键值对是name: marry,其中name是键名,字符串marry是键值。键名与键值之间用冒号分隔。

第二个键值对是age: 18,age是键名,18是键值。两个键值对之间用逗号分隔。

2.键名

对象的所有键名都是字符串


键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),且也不是数字,则必须加上引号,否则会报错。


3.属性的读取

读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。


4.属性的赋值

点运算符和方括号运算符,不仅可以用来读取值,还可以用来赋值。


5.属性的查看

查看一个对象本身的所有属性,可以使用Object.keys方法。


6.属性的删除:delete 命令

delete命令用于删除对象的属性,删除成功后返回true。


删除后,再读取p属性就会返回undefined,而且Object.keys方法的返回值也不再包括该属性。

7.属性是否存在:in运算符

in运算符用于检查对象是否包含某个属性(键名)包含就返回true,否则返回false


in运算符的一个问题是,它不能识别哪些属性是对象自身的,哪些属性是继承的。就像上面代码中

,对象obj本身并没有toString属性,但是in运算符会返回true,因为这个属性是继承的。

8.属性是否为对象自身的属性hasOwnProperty


9.属性的遍历:for...in 循环

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

*它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。

 它不仅遍历对象自身的属性,还遍历继承的属性。




你可能感兴趣的:(2019-05-08javaScript里的的数据类型)