JS中的数据类型

2018-11-26  本文已影响0人  wait_58d2

JS中的6种数据类型  字符串(string),数值(number)布尔值(boolean),null ,undefined,symbol

一。字符串

①长字符串换行时需要加 \ 否则会报错,也可以使用'+'号。eg(var a="xxx"+"xx")

②字符串可以视为字符数组 可以使用数组的下标来取值   eg(var a="hello" a[2]="l"),

    但是并不能改变length的长度。

③JS使用Unicode字符集,字符长度都是16位(2个字节)。

④转义 

二。数值

①js底层中没有整数,涉及到小数操作经常会出错。

②数值的科学计算法,(123e3=123000)(123e-3=0.123)

③NAN是数值的一种特殊值,经常出现在将字符串转换为数字时出错的场合。

④NAN和任何数的运算都是NAN(+-*/=)

⑤转换为数字 number  parseint  parsefloat 

number(): 任何不能转换为数字的值 //nan ,  ''.和null  //0 , object ,undefined //nan。

paeseint():用于将字符串转换为整数

   1.如果字符串中的第一个字符不能转换为数字则返回NAN(除+ -)。

   2.parseint转换结果和number不一样

      paeseint(true) //nan

       number(true) //1

     parseint('123ys') //123

       number(123ys); //nan

paeseint(1.2344)  //1

parsefloat(1.2344)//1.2344

⑥isNan()用来判断一个值是不是nan 如果是返回true 否返回false

isNan("shshss") //true,当他的值为字符串的时候也会返回true   

当isNan()传入其他值(除数值外)都会将他的值转换为数值类型,当装换为数值类型时会返回NAN (number("bbbbb")-----nan -------isnan(nan)),然后再经过isnan(nan)---(true),由于同样的原因对象,数组,一样返回true,但是对于空数组和有一个值的数组则返回false.

三。null ,undefined  boolean 

①null和undefined语法几乎没有区别,  null==undefined

   ull用来表示一个为空的对象

   undefined 表示一个此处无定义的初始值

②返回undefined的几种情况,1声明未赋值 

                                               2调用函数时没有提供参数 eg(functiong com(a){return a} com() //undefined)  

                                                3函数没有返回值,eg(function c(){a+b} c() //undefined)

                                                4对象没有赋值的属性 eg(var a=new object() a.p //undefined)

③boolean有两个值true和false

④bollean() 以下值会自动转换为false。undefined ,null ,"",nan,+0/-0,false外其他值都为true

⑤空数组和空对象返回的都是true

四。Object对象

①对象时js语言的核心概念,也是最重要的数据类型。

②对象一组键值对的集合,是一种无序的复合数据类型(集合中可以包含多种不同的类型)。

eg(va a={a:true;b:1;c:'string'})

③var a(变量)={a(属性/键名):"1"(值),c:"string"}

④键名的第一个值为数字,或者含有空格,运算符如果不加上双引号(''),会提示错误。

⑤对象的属性可以动态创建,不必再对象声明时就指定

⑥对象的引用,如果不同的变量名指向同一个变量(他们就是这个变量的引用),如果对单一变量赋值会影响        到其他变量,取消单一变量不会影响到其他变量。    

4.2属性的操作

4.2.1属性的读取:点方法和方括号方法

①方括号运算符,键名必须放在引号里面,否则会被当做变量处理。                                                                                 eg(var foo=‘bar’ var  obj={foo:'1',bar:'2'}  obj.foo  //1   obj[foo] //2)

②数字键名不能使用点运算符,只能使用方括号。

4.2.2属性的赋值                                                                                                                                                     js可以在任意时刻新增属性,没必要在声明的时候就定义                                                                                       赋值  eg(var obj={}   obj.foo=true;    obj['foo']=true;)                                                                                       新增eg(var obj={a:"string"}   obj.c="12345")

4.2.3属性的查看                                                                                                                                                             查看一个对象的所有属性的方法,可以使用Object.keys(对象名)         只返回key的值                                                  var  a={ "0p":"string ",a:"4342"}    object.keys(变量名);      //key1  key2

4.2.4属性的删除                                                                                                                                                         delect命令用于删除对象的属性,删除成功后返回true。只有一种情况下会返回false(该属性存在但是            不能被删除)       语法( va obj={p:1} 查看Object.keys(obj);  删除delect .对象名.属性)

4.2.5判断属性是否存在(in运算符)                                                                                                                    ①in运算符用于检查对象是否包含某个属性(键名)如果有就返回true  否则返回false                                         eg(var hello={a:123,b:"string"}    a in hello  //true)                                                                                                          语法a  in  hello     //  in 左侧的值需为字符串                                                                                  ②in 运算符无法判断属性是本身的还是继承。                                                                                                  ③还可以用hasOwnPropertry方法判断是否为对象自身属性                                                                                  var obj={"p":"hello world"}  console.log( 对象名.hasOwnProPertry(属性名))。

4.3属性的遍历(for .....in  循环)                                                                                                                            ①for.....in 循环用来遍历一个对象的全部属性,他不仅用来遍历本身的属性还遍历继承的属性。                      ②他遍历的都是对象的可遍历属性,会跳过不可以遍历属性。△不会遍历tostring这个属性                                        var  a = { a:"1","1":"string "}      for(var  i in a){  console.log('键名':i);console.log('键名':a[i])}                      ③如果只需要遍历对象本身,可以结合hasOwnProPrety()来使用                                                                            eg(var a={'a':1,'rde':'ssss'} for(var s in a){  if(obj.hasOwnProperty(属性名)){console.log(key)})})

上一篇下一篇

猜你喜欢

热点阅读