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

JS 里的数据类型

作者: MDIF | 来源:发表于2018-12-09 22:56 被阅读0次

javascript有以下七种数据类型:
number,string,boolean,symbol,null,undefined,object
其中,number,string,boolean,symbol,null,undefined属于原始类型(primitive values)
object属于复合类型(complex type)

1.number(数字)
表示整数和浮点数,javascript里的整数和浮点数,统一采用64为浮点数来形式储存。

1 //1   整数
1.0 //1.0   浮点数
.1//0.1      浮点数
1.23e2 == 1.23 * 10^2 //123   科学计数法

上面是使用十进制表示,也有其他进制的表示方法
0b开头表示二进制
0o开头表示八进制
0x开头表示十六进制
不区分大小写

0b10 //  2      二进制
0o56//   46   八进制
0x5a//   90   十六进制

2.string
表示字符串,使用双引号或单引号括起来。

"我是字符串"   //我是字符串
'我是字符串'    //我是字符串

如果需要在引号内部使用' 或者''需要使用反斜杠(\)进行转义转义,不然会造成歧义。除了转义引号,还可以转移其他的符号。
':单引号
":双引号
\t:制表符(Tab)
\n:换行符
\r:回车键
\:反斜杠
转义符号长度为1。
如果写代码时需要写多行字符串,可以使用以下几种形式
1)使用反斜杠(\),需要注意的是这种书写格式会让人不知道反斜杠后面有没有空格,容易造成bug,所以不推荐使用。

var a = '12345\
67890'

2)使用加号(+)连接字符串

var a= '我是'+
          ‘字符串’
//我是字符串

3)使用反引号(`),使用反引号会把回车和空格算上。

var a =   `我是
字符串`
//我是
//字符串

var b= `我是
    字符串`
//我是
//    字符串

3.boolean
布尔有两个取值,真(true)和false(假)。
&&:或运算,只有两个值都为真,返回真

var a = 1
var b = 2
var c=  3
a>b && a>c  //false
a>b && a<c  //false
a<b && a<c  //true

||:与运算,两个有一个为真,返回真

var a = 1
var b = 2
var c=  3
a>b || a>c  //false
a>b || a<c  //true
a<b || a<c  //true

4.symbol
ES6新加的一中数据类型,作用是生成一个全局唯一的值。在为对象添加新属性时,防止属性名冲突,这是出现该类型的目的。
通过symbol()来实现该数据类型。括号中可以添加对象或者字符串,不过仅仅是为了方便查看,会返回一个字符串。

var mySymbol = Symbol();
var yourSymbol = Symbol('your');
var hisSymbol = Symbol('his');

var a = {
  mySymbol:'my',
  yourSymbol:'your',
  hisSymbol:'his',
}

a['mySymbol']   //'my'
a['yourSymbol']  //'your'

Symbol('his') == Symbol('his');  //false
Symbol() == Symbol('his');   //false

上面先声明了三个变量并赋值为Symbol(),括号里的可以看作是注释,经过实验可以发现每个Symbol()并不相等。

5.null和undefined
两个意思基本相等,表示没有值,什么都没有。null只有一个取值null,undefined也只有一个取值undefined。

var a = null   //null            人们看到null就会知道你是想写一个空对象

var b     //undefined         人们看到会知道这是一个空的非对象的东西......

变量没有赋值会返回undefined。这是JavaScript的语法。
想写一个对象,但是现在还不想赋值使用null,写一个不是对象的东西,比如空string,空number等等,反正不是空对象的其他空的东西都用undefined,这是人们约定成俗的,并不是JavaScript的语法

6.object
对象属于复合类型(complex type),是原始类型(primitive values)的组合。一个对象由多个无序的键值对组成,key叫做属性名,value叫做属性值。

{key:value,key:value,key:value,}    //声明对象的语法,需要把对象赋值给变量来使用
var a = {
              name:'小强',
              age:18,
              bachelordomDog:true,}  //最后的逗号可加可不加

关于最后的逗号,ES3不支持,所以如果考虑兼容IE7以及以下,是不能加的。

在JavaScript中,属性名永远都是字符串,不过书写的时候可以省略引号。虽然会方便,但是有限制条件,就是不加引号的属性名需要遵守标识符规则,否正一律加引号。

var a = {
              name:'小强',
              age:18,
              ’1aa‘:'aaa'     //属性名可以数字开头要加引号
              单身狗:true,  //属性名可以是中文
               borther:{name:'小力',age:16,单身狗:false,}   //对象中可以放对象
               's s':'haha',   //有空格要加引号
              '':'我是空字符串'  //属性名可以使用空字符串
}

对象的使用

var name = 'hahaha'

var a = {
              name:'小强',
              age:18,
              ’1aa‘:'aaa'     //数字开头要加引号
              单身狗:true,  //可以是中文
               borther:{name:'小力',age:16,单身狗:false,}   //对象中可以放对象
               's s':'haha',   //有空格要加引号
}

a[name]    //undefined     错误用法,访问的是a['hahaha']
a['name']   //'小强'
a.name   //'小强'   使用点运算符,相当于a['name']

7.delete的使用
delete可以删除对象中的属性名或者属性值

var a = {
              name:'小强',
              age:18,
              ’1aa‘:'aaa'     //数字开头要加引号
              单身狗:true,  //可以是中文
               borther:{name:'小力',age:16,单身狗:false,}   //对象中可以放对象
               's s':'haha',   //有空格要加引号
}

delete a['name']
a.name  //undefined    属性值不存在
'name' in a   //false   属性名不存在

如果想保留属性名可使用undefined

a['name'] = undefined
a.name  //undefined    属性值不存在
'name' in a   //true   属性名还存在

8.for...in的使用
for...in可以遍历对象

var a = {
              name:'小强',
              age:18,
              ’1aa‘:'aaa'     //数字开头要加引号
              单身狗:true,  //可以是中文
               borther:{name:'小力',age:16,单身狗:false,}   //对象中可以放对象
               's s':'haha',   //有空格要加引号
}

for (var key in a){
  console.log(key)
}
//name
//age
//1aa
//单身狗
//borther
//s s
//浏览器可能不会按顺序打印

需要注意的是如果写成

for (var key in a){
  console.log(a.key)
}

这样是会出错的,因为a.key相当于a['key']而不是打印变量key。

9.typeof的使用
typeof可以查看数据类型

var a = 'aaaaaa'
typeof a
//string

typeof有以下两个bug,是javas没设计好造成的

typeof null    //'object'

function x(){}
typeof x 
//'function'

不过JavaScript并没有function的数据类型......

相关文章

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