>  기사  >  웹 프론트엔드  >  js의 변수 및 데이터 유형에 대한 자세한 설명

js의 변수 및 데이터 유형에 대한 자세한 설명

PHP中文网
PHP中文网원래의
2017-06-20 09:20:121284검색

1. 변수

  js에서 변수는 값을 저장하고 표현하는 데 사용되는 추상적인 개념입니다. js에서 변수를 정의하는 것은 매우 간단합니다. var 변수 이름 = 변수 값

  = 할당 작업이며 왼쪽에 변수 이름이 있고 오른쪽에 저장된 값이 있습니다.

js의 변수는 느슨하게 형식화되어 있습니다. var를 사용하면 됩니다. 변수 이름 임의의 데이터 유형을 저장

 예: var name = 'lee思'

2. 데이터 유형

1. 기본 데이터 유형: 간단한 구조로 구성

  숫자(숫자), 문자열 ( string), boolean, null, undefine

2. 참조 데이터 타입 : 구조가 비교적 복잡함

타입에 대한 자세한 설명

 1. 숫자 : 양수, 음수, 0, 십진수 NaN ( 유효한 숫자는 아니지만 숫자 데이터 유형에 속함)

  

NaN==NaN //false notequal  var num = 12 //= 할당 == 값이 왼쪽과 오른쪽이 동일합니다

  isNaN(); 유효한 숫자가 아닌 명제가 참인지 여부를 감지합니다. 유효한 숫자가 아니면 false를 반환합니다 감지된 값이 숫자 유형이 아닌 경우 브라우저는 기본적으로 숫자로 변환합니다.

 Number(): 다른 데이터 유형을 강제로 숫자 유형으로 변환합니다. 문자열인 경우 모든 문자열을 반드시 숫자 유형으로 변환해야 합니다. 숫자로 변환할 수 있습니다

 예: Number('12')==>12 Number('12px')==>NaN

   필수가 아닌 데이터 유형 변환 parseInt/parseFloat:

  ParseInt: From 왼쪽에서 오른쪽으로 문자를 검색하고 숫자를 유효한 숫자로 변환합니다. 중간에 유효하지 않은 숫자가 나타나면 검색을 계속하지 않습니다.

  ParseFloat: 위와 동일하게 소수점을 하나 더 식별할 수 있습니다.

면접 질문 :

var val  = Number('12px');if(val==12){
    console.log(12)
}else if(val==NaN){
    console.log(NaN)
}else{
    console.log('以上都不成立')//输出这个
}

 

 2. 부울 : 참 거짓

  
! : 느낌표는 부정입니다. 먼저 값을 부울 유형으로 변환한 다음 부정합니다

    console.log(!3)//3을 먼저 부울 유형으로 변환한 다음 부정합니다

   ! ! :다른 데이터 유형을 Boolean()

  과 동일한 부울 유형으로 변환합니다. 데이터 유형 변환 규칙:

  

1) 값이 하나만 있는 경우 값이 true인지 false인지 확인하고 다음을 따릅니다. 0 NaN " " null undefine 이 5개는 false이고 나머지는 true입니다

   

2) 두 값이 같은지 비교해보면

    val1==val2 두 값은 같은 데이터 타입이 아닐 수도 있습니다 .== 비교하면 기본 데이터형 변환이 수행됩니다

    ①, object == object, neverequal

     ②, object == string, 먼저 객체를 문자열로 변환합니다(toString 메소드 호출). , 그런 다음

      []Convert to string ""

     {}Convert to string "[object,object]"

    3、Object == 부울 유형, 객체가 먼저 문자열(toString)로 변환되고, 그런 다음 숫자로 변환(숫자 ""가 0이 됨), 부울 유형도 숫자로 변환(true는 1, false는 0), 마지막 두 숫자를 비교합니다

     4. 객체 == 숫자, 객체는 다음과 같습니다. 먼저 문자열(toString)로 변환한 후 숫자로 변환하면(숫자 ""가 0이 됨) 마지막 두 숫자를 비교합니다

   ⑤. Number == Boolean, Boolean은 숫자,

    ⑥로 변환됩니다. Number == 문자열이고 문자열은 숫자로 변환됩니다

   7 , String == Boolean, 모두 숫자로 변환됩니다

     8、null==undef 결과는 true입니다

     ⑨ null과 undefine은 다른 것과 동일하지 않습니다. 데이터 유형 비교

   

3), ==는 비교라는 점을 제외하고,===도 비교입니다(절대 비교)

   val1===val2 데이터 유형이 같지 않으면 확실히 같지 않습니다

3. 객체 데이터 유형([속성 이름 및 속성 값]의 여러 집합, 여러 키 집합으로 구성됨, 여러 키:값으로 구성된 값 쌍으로 구성됨. 속성 이름과 속성 값은 이 속성을 설명하는 데 사용됩니다. 객체)

  

예: 리터럴 생성 방법 인스턴스 생성 방법

 personInfo ="小李"28"60kg"

    对象数据类型中,还可以具体的细分: 对象类(Object),数组类(Array),正则类(RegExp),时间类(Date),字符串类(String),布尔类(Boolean),Math数学函数...等对应的实例:对象、数组、正则、时间...

    

    js中对象、类、实例的区别:对象是泛指,js中万物皆对象,类是对对象的具体的细分,实例是类中的一个具体的事物

    举例:自然界中万物皆对象,所有的东西可以分为人类、植物类、动物类、物体类,每一个人都是人类中的一个具体的实例

 

   4、基本数据类型和引用数据类型的区别

     面试题:   

var num1 = 12;var num2 = num1;//把num1代表的值给了num2变量num2++//等于num2 = num2+1  也可以写成num2+=1console.log(num2);//13console.log(num1);//12var obj1 = {name:"小李"};var obj2 = obj1;
obj2.name = '小李小李';
console.log(obj1.name)//小李小李console.log(obj2.name)//小李小李

     总结:基本数据类型没有跟着改变,引用数据类型跟着改变了

     可以看一下下面的图:

   

      基本数据类型和引用数据类型的本质区别: 基本数据类型操作的是值,引用数据类型操作得是对新空间的引用地址

      基本数据类型是把值直接的给变量,接下来在操作的过程中,直接拿这个值操作的,可能两个变量存储一样的值,但是互不干扰,其中一个改变,另一个没有任何的影响。

      引用数据类型:

        1)、定义一个变量

        2)、开辟一个新的空间,然后把属性名和属性值保存在这个空间中,并且有一个空间地址

        3)、把空间的地址给了这个变量,变量并没有存储这个数值,而是存储的是对这个空间的引用

        4)、接下来把这个地址,又告诉给了另外一个变量,另外一个变量存储的也是这个地址,此时两个变量操作的是同一个空间

        5)、其中一个改变了空间的内容,另外一个也跟着改变了

    5、检测数据类型的方式:typeof instanceof constructor  Object.prototype.toString.call()

      typeof用来检测数据类型的:typeof 要检查的值

      返回值:是一个字符串,包含了数据类型字符"number"、"string"、“boolean”、“undefined”、“object”、"function"

      typeof null 的结果是“object”

      typeof的局限性:不能具体检查object下细分的类型,检查这些返回的都是“object”

      面试题:

        console.log(typeof typeof typeof [])// "string"   出现两个以上的typeof   最终结果都是“string”

          

      

  

    

 

    

     

위 내용은 js의 변수 및 데이터 유형에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.