이 기사는 JavaScript의 6가지 기본 데이터 유형에 대한 관련 지식을 제공하는 것이 도움이 되기를 바랍니다.
JavaScript에서는 모든 것(변수, 함수 및 연산자)이 대소문자를 구분합니다. 이는 또한 변수 이름 test와 변수 이름 Test가 서로 다른 두 변수를 나타냄을 의미합니다.
소위 식별자는 변수, 함수 이름 및 연산자 또는 함수 매개변수를 나타냅니다. 식별자의 형식 규칙은 다음과 같습니다.
1. 첫 번째 문자는 문자, 밑줄(_) 또는 달러 기호($)여야 합니다.
2. 다른 문자는 문자, 밑줄, 달러 기호 및 숫자일 수 있습니다.
관례에 따라 JavaScript 식별자는 카멜 케이스 형식으로 작성됩니다. 즉, 한 글자는 소문자로 열리고 나머지 단어의 첫 글자는 대문자로 표시됩니다. 예: firstChirld, myCar;
물론 식별자에 카멜 케이스 형식을 사용해야 하는 것은 아니지만 작성 시 작은 카멜 케이스 형식을 사용하는 것이 더 쉽습니다. 다른 사람들이 귀하의 코드를 더 쉽게 이해할 수 있도록 하십시오.
JavaScript의 주석 방법은 한 줄 주석과 여러 줄 주석으로 구분됩니다.
한 줄 주석:
//这是一个单行注释
다줄 주석:
/* *这是一个 *多行注释 */
JavaScript에서는, 명령문은 세미콜론으로 끝납니다. 세미콜론이 생략되면 해석기가 끝을 결정합니다. 다음 예에서 볼 수 있듯이:
var sum = a + b //即使没有分号也是有效语句——不推荐 var diff = a - b; //有效语句——推荐
JavaScript의 변수 유형은 약한 유형입니다. 소위 약한 유형은 모든 유형의 데이터를 저장하는 데 사용할 수 있음을 의미합니다. 즉, 각 변수는 값을 보유하기 위한 자리 표시자일 뿐입니다.
변수를 정의할 때 var 키워드를 사용하고 그 뒤에 변수 이름(예: 식별자)을 사용하세요. 아래와 같이
var message;
JavaScript는 변수의 직접 초기화도 지원하므로 변수를 정의하는 동안 변수의 값을 설정할 수 있습니다. 아래와 같이
var message = "Hello world!";
주의해야 할 점은 var 키워드로 정의된 변수는 해당 변수가 정의된 범위에서 지역 변수가 된다는 점입니다. 즉, 함수에서 변수를 정의하기 위해 var를 사용하면 함수가 끝난 후 변수가 소멸됩니다. 예:
function test(){ var message = "Hello"; //局部变量 } test(); console.log(message); //错误!
오류가 발생하는 이유는 message 변수가 test() 함수에서 var를 사용하여 정의되었기 때문입니다. 함수가 호출되면 변수가 생성되고 값이 할당됩니다. 그 후에는 변수가 즉시 소멸되므로 예제의 다음 코드 줄에서는 오류가 발생합니다. 하지만 다음과 같이 var 키워드를 생략하면 전역 변수를 생성할 수 있습니다.
function test(){ message = "Hello"; //全局变量 } test(); console.log(message); //"Hello"
여기서 var 키워드를 생략하면 메시지가 전역 변수가 됩니다. 이런 식으로 test() 함수를 한 번만 호출하면 전역 변수가 설정된 후에는 함수 외부 어디에서나 변수에 접근할 수 있습니다.
var 키워드를 생략하여 전역 변수를 정의하는 것은 가능하지만 로컬 범위에 정의된 전역 변수는 유지 관리가 어렵기 때문에 권장되지 않습니다.
몇 가지 간단한 데이터 유형(기본 데이터 유형이라고도 함)이 있습니다. ): 정의되지 않음, Null, 부울, 숫자 및 문자열. 복잡한 유형인 Object도 있습니다. Object는 본질적으로 순서가 지정되지 않은 이름-값 쌍의 집합입니다. JavaScript는 사용자 정의 유형을 생성하는 메커니즘을 지원하지 않으며 모든 값은 이러한 6가지 데이터 유형 중 하나입니다.
JavaScript는 약한 유형이므로 주어진 변수의 데이터 유형을 감지하는 방법이 필요합니다. typeof는 주어진 변수의 데이터 유형을 감지하는 연산자입니다. 값에 typeof 연산자를 사용하면 다음 문자열 중 하나가 반환될 수 있습니다.
"정의되지 않음" - 값이 정의되지 않은 경우
"boolean" - 값이 부울 유형인 경우; string" - 값이 문자열인 경우;
"number" - 값이 숫자인 경우;
"object" - 값이 객체이거나 null인 경우;
"function "— —값이 함수인 경우
다음은 typeof 연산자를 사용하는 몇 가지 예입니다.
var message = "hello"; console.log(typeof message); //"string" console.log(typeof(message)); //"string" console.log(typeof 95); //"number"typeof 연산자의 피연산자는 변수이거나 숫자 리터럴일 수 있습니다. typeof는 함수가 아니므로 이 예에서는 괄호를 사용할 수 있지만 필요하지 않습니다.
JavaScript에서 함수는 데이터 유형이 아닌 객체이므로 함수를 다른 객체와 구별하려면 typeof를 사용해야 합니다.
정의되지 않은 유형에는 특수한 정의되지 않은 값이 하나만 있습니다. var를 사용하여 변수를 선언했지만 초기화하지 않은 경우 변수 값은 정의되지 않습니다. 예:
var message; console.log(message == undefined); //true var message1 = "undefined"; console.log(message1 == undefined); //true
var message; //这个变量声明之后默认取得了undefined值 //下面这个变量并没有声明 //var age; console.log(typeof message); //"undefined" console.log(typeof age); //"undefined"
는 초기화된 변수와 선언된 변수 모두에 대해 정의되지 않은 값을 반환합니다. 이 결과는 논리적으로 타당합니다. 이 두 변수는 기술적인 관점에서 본질적으로 다르지만 실제로는 두 가지 유형의 변수에 대해 실제 연산을 수행하는 것이 불가능하기 때문에
Null类型是第二个只有一个值得类型,这个特殊的值是null。从逻辑的角度来看,null值表示一个对象的空指针,而这也正是使用typeof操作符的检测null值时会返回“object”的原因,如下面的例子所示:
var message= null; console.log(message); //"object"
如果定义的对象将来用来保存对象,那么最好将这个变量初始化为null而不是其他的值。这样一来,只要直接检查null值就可以直接知道相应的变量是否已经保存了一个对象的引用,如下面的例子:
if(message != null){ //对message进行一系列的操作 }
实际上,undefined的值是派生自null值得,所以对它们进行相等性测试的时候要返回true:
console.log(null == undefined); //true
在这里,位于null和undefined之间的相等操作符(==)总是返回true。尽管null和undefined有这样的关系,但它们的的用途完全不同。如上面所述,无论在什么情况下,都没有必要把一个变量显示的表示为undefined,可是同样的规则对null却不适用。换句话说,只有保存对象的变量还没有真正的保存对象,就应该在明确地表示将该变量保存为null值。这样做不仅可以体现null值作为空指针的惯例,而且也有助于进一步的区分null和undefined。
Boolean类型是JavaScript中使用最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。以下是为变量赋值的例子:
var first = true; var second = false;
需要注意的是,boolean类型的两个值区分大小写。也就是说True和true、False和false不是一回事。
True和False(以及其他混合大小形式)只是标识符,不是boolean值。
虽然boolean值只有两个值,但是JavaScript所有类型的值都有与这两个boolean值等价的值。要将一个值转换为相应的Boolean值,可以调用Boolean()函数。例如:
var message = "Hello world!"; var messageAsBoolean = Boolean(message); console.log(messageAsBoolean); //true
可以对任何类型的值调用Boolean()函数,而且总会返回一个boolean值。至于返回的是true还是false取决于要转换的实际类型及其实际值。下表给出了各种数据类型对其转换的相应规则:
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | “”(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | n/a | undefined |
在JavaScript中number类型定义了不同的数值字面量格式。例如:
var intNumber = 55; //十进制整数 var octalNum1 = 070; //八进制的56 var octaNum2 = 079; //无效的八进制数,解析为79 var octaNum3 = 08; //无效的八进制数,解析为8 var hexNum1 = 0xA; //十六进制的10 var hexNum2 = 0x1f; //十六进制的31
在进行算术计算时,所有八进制和十六进制表示的数值都会转换成十进制数值。
NaN即非数值,是一个特殊的数值。这个数用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。NaN本身有两个特点:
首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。
其次,NaN与任何值都不相等,包括NaN本身。例如:
console.log(NaN ==NaN ); //false
string类型用于表示零或多个Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(’)表示,因此下面两种写法都是有效的:
var firstName = "王文正"; var secondName = "王彬";
双引号开头的必须以双引号结尾,而当引号开头的必须以单引号结尾。下面这种会导致语法错误:
var name = "王彬'; //语法错误
String类型中包含了一些特殊字面量,也叫转义序列,用于表示非打印字符,或者有其他的用途的字符。这些字符字面量如下表所示:
字面量 | 含义 |
---|---|
\n | 换行 |
\t | 制表 |
\b | 退格 |
\r | 回车 |
\f | 进纸 |
\ | 斜杠 |
’ | 单引号 |
" | 双引号 |
\xnn | 以十六进制代码nn表示一个字符 |
\unnn | 以十六进制代码nnn表示一个Unicode字符 |
JavaScript中的字符串是不可变的,也就是说,字符串一旦创建,它的值就是不可更改的。要更改某个变量中保存的字符串,首先要销毁原来的字符串,然后用另一个包含新值得字符串填充变量,例如:
var lang = "java"; lang = lang + "script"; console.log(lang); //javascript
JavaScript中的对象是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型名称来创建。而创建Object类型的实例并为其添加属性或方法,就可以创建自定义对象。如下所示:
var o = new Object(); var o = new Object; //有效,但是不推荐这种做法;
constructor:保存着用于创建当期那对象的函数。
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是实际的原型中)是否存在。
isPrototypeOf(object):用于检查传入的对象那个是否是当前对象的原型。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同
toString():返回对象的字符串表示
由于在JavaScript中Object是所有对象的基础,因此所有对象都具有这些基本的属性和方法。
【相关推荐:javascript学习教程】
위 내용은 JavaScript의 6가지 기본 데이터 유형에 대한 자세한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!