JS里的数据类型

96
一座城市一个人
2019.04.14 20:18* 字数 778

JS的7大数据类型

  1、number    2、string    3、boolean
  4、symbol    5、null      6、undefined
  7、object

注意:JS是没有array、function这两种类型,这两种都是属于object类型的。

一、number数据类型(数字类型)

var x=1 //整数  
var x=1.1 //小数
var x=1.23e2 //科学记数法 1.23e2=1.23*10^2
var x=0b11 //二进制
var x=011 //八进制  (后来ES5添加了0o11语法)
var x=0x11 //十六进制

注意:上述提到均为number的数据类型,其中以0b开头的表示二进制,以0开头的表示八进制,以0x开头表示十六进制

二、string数据类型(字符串类型)

var x='你好' //中文字符串
var y="你好" //中文字符串
var x='abc'  //英文字符串
var  x='1'  //数字字符串
var x='' //空字符串,length=0
var x=' ' //空格字符串,length=1

注释:字符串必须要用单引号或双引号括起来,如数字1和数字'1',前者没有单引号属于number类型,后者添加单引号属于string类型。

1、字符串中转义符\的应用:

var x='\' //转义符,一个整体
var x='\n' //表示回车键,length=1
var x='\t' //表示Tab键,length=1
var x='\\' //表示斜杠\,length=1
转义字符表

2、多行字符串几种表达方法:

 var x='12345 \
        67890'  //在换行的地方加上一道斜杠,不然表示错误(方法1)
 var x2='12345 '+'67890' //(方法2)
 var x3=`12345
 6789` //ES6增加表达方法,利用反引号,包括回车在内的长度:length=10(方法3)

注释:方法2比方法1使用效果更佳,如使用方法1斜杠后面如果多出一个空格符号,就极容易导致调试出现bug

三、boolean数据类型(布尔类型)

布尔类型值只有truefalse
其中false出现情况只有五种分别是0nullunfinedNaN''"";
其他情况均为true值,如:空数组,空对象、负值、正值等。

 var a=true; //如果a为真,则执行if语句
 var a=false; //如果a为假,则不执行if语句
 if(a){console.log(a)}  //打印出a值

布尔数据类型与运算符&&(与),||(或)的结合使用:a&&b,a||b


a&&b
a||b

四、null和undefined数据类型

其中null数据类型只有一个值null,undefined数据类型也只有一个值undefined,两者皆表示什么都没有,这是JS发展过程中存在一个历史bug。
两种最大区别如下:
(1)变量没有进行赋值-----用undefined

 var a  //undefined

(2)有一个对象object,现在不想给值-----用null

var obj=null

注释:只要不是对象,目前不想给值情况,推荐使用undefined

五、object数据类型(对象类型)

简述一下对象:如一个人有姓名,年龄,性别等特性,这些特性都是能体现在同一个人身上,而这个人则可以称之为对象,这个对象包含相关所有特性。

var person={
            'name':'fei' //string类型
            'age':18 //number类型
            'gende':'male' //string类型
            }

由上述例子看出,对象是复杂类型,它是由简单数据类型组成,当我们要读取对象里面数据时,可以使用person['name'],注意括号里面的单引号不能省略。

  var name='fei' //undefined  全局变量
  var person={
            'name':'fei' //string类型
            'age':18 //number类型
            'gende':'male' //string类型
            }

如使用person[name]没有单引号,这个时候实际访问的person['fei']打印出来的就是undefined

var person={
            'name':'fei' ;
            'age':28 ;
            'gende':'male' ;
            'children':{'name':'qin','age':5} //对象中包括对象
            }

对象中的'name'命名如果符合标识符命名规则则访问对象中name内容可以由person['name']改成person.name

六、delete、in、forin和typeof用法

1、delete可以删除对象中的数据类型,这个时候可以in来验证是否完成对象中数据类型的删除。

delete和in的用法

(1)delete对象中的'name',再去访问person['name'],显示是undefined(无value);
(2)delete对象中的'name',再去验证'name' in person,显示是false(无key)
注意;如果我们没有用delete删除对象中的'name',而是用person['name']=undefined这种情况只是把value清空了,但是key还是存在的。

2、for....in用来遍历对象

for...in使用

打印出来的nameage顺序是随机的,如果改成console.log(person.key)是打印不出任何东西,里面等价于字符串key,而key是变量,可以改成(person[key]), 如果要同时打印keyvalue,应改(key,person[key])

3、typeof求一个变量是什么样的数据类型

 typeof 1 //number类型
 typeof 'fei'//string类型
 typeof null //object对象(特例)
 typeof function //function函数(特例)

对于typeof返回类型只有上述两个特例,其他均返回对应的数据类型。

日记本
Web note ad 1