> 웹 프론트엔드 > JS 튜토리얼 > 자바스크립트가 주의해야 할 디자인들 (일부 정리)

자바스크립트가 주의해야 할 디자인들 (일부 정리)

php是最好的语言
풀어 주다: 2018-08-01 09:26:25
원래의
1273명이 탐색했습니다.

요즘 avascript를 검토하고 있습니다. 이 훌륭한 js는 매우 강력한 사람이 열흘 만에 개발했기 때문에 학습하는 동안 항상 몇 가지 디자인 결함이 있을 수 있으므로 이러한 함정은 건너뛰도록 하겠습니다.

1. 연산자 == 및 ===

항등 연산자 ==에 특히 주의하세요. JavaScript를 설계할 때 두 가지 비교 연산자가 있습니다. ==。JavaScript在设计时,有两种比较运算符:

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

2. NaN  

NaN表示Not a Number,当无法计算结果时用NaN表示
로그인 후 복사

NaN这个特殊的Number与所有其他值都不相等,包括它自己

NaN === NaN; // false
로그인 후 복사

唯一能判断NaN的方法是通过isNaN()函数:

isNaN(NaN); // true
로그인 후 복사

3. null和undefined

null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。

在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。

JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用nullundefined仅仅在判断函数参数是否传递的情况下有用

4. 数组

数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。例如:

[1, 2, 3.14, 'Hello', null, true];
로그인 후 복사

初始化数组:

var array1 = new Array()

var array1 = []

var array1 = new Array(10)

5. 对象

JavaScript的对象是一组由键-值组成的无序集合

var person = {
    name: 'Bob',
    age: 20,
    tags: ['js', 'web', 'mobile'],
    city: 'Beijing',
    hasCar: true,
    zipcode: null
};
로그인 후 복사

JavaScript对象的键都是字符串类型,值可以是任意数据类型。上述person对象一共定义了6个键值对,其中每个键又称为对象的属性,例如,personname属性为'Bob'zipcode属性为null

要获取一个对象的属性,我们用对象变量.属性名

첫 번째는 == 비교로, 자동으로 데이터 유형을 변환한 다음 비교하는 경우가 많습니다.


두 번째 유형은 데이터 유형이 자동으로 변환되지 않는 === 비교입니다. 데이터 유형이 일치하지 않으면 false가 반환됩니다. 다시. JavaScript의 이러한 설계 결함으로 인해 == 비교를 사용하지 않고 항상 === 비교를 사용하세요.

2. NaN

NaN 이 특수 숫자는 자신을 포함한 다른 모든 값과 동일하지 않습니다. rrreee

NaN을 확인하는 유일한 방법은 를 통해서입니다. isNaN() 함수:

rrreee

3. null 및 정의되지 않음null0 및 null과 동일한 "빈" 값을 나타냅니다. 문자 문자열 ''은 다름, 0은 숫자 값, ''는 길이가 0인 문자열을 나타내고 null code>는 "비어 있음"을 의미합니다.

🎜다른 언어에도 JavaScript의 null과 유사한 표현이 있습니다. 예를 들어 Java에서는 null을 사용하고 Swift에서는 nil을 사용하며 Python에서는 None을 사용합니다. 그러나 JavaScript에는 "정의되지 않음"을 의미하는 null과 유사한 undefine도 있습니다. 🎜🎜JavaScript 설계자는 빈 값을 나타내기 위해 null을 사용하고 정의되지 않은 값을 나타내기 위해 undefine을 사용하기를 희망합니다. 이것이 아무 소용이 없다는 것이 사실로 입증되었으며, 둘 사이의 차이는 별 의미가 없습니다. 대부분의 경우 null을 사용해야 합니다. 정의되지 않음은 함수 매개변수가 전달되는지 확인할 때만 유용합니다🎜🎜 4. 배열🎜🎜배열은 순서대로 배열된 집합이며, 집합의 각 값을 요소라고 합니다. JavaScript 배열에는 모든 데이터 유형이 포함될 수 있습니다. 예: 🎜rrreee🎜배열 초기화: 🎜🎜var array1 = new Array()🎜🎜var array1 = []🎜🎜var array1 = new Array(10) 🎜🎜5 개체 🎜🎜JavaScript 개체는 키 집합입니다. - 정렬되지 않은 값 모음 🎜rrreee🎜 JavaScript 개체의 키는 모두 문자열 유형이며 값은 모든 데이터 유형이 될 수 있습니다. 위의 person 객체는 총 6개의 키-값 쌍을 정의하며, 각 쌍은 객체의 속성이라고도 합니다. 예를 들어 의 <code>name 속성은 다음과 같습니다. 사람은 'Bob'이고 우편번호 속성은 null입니다. 🎜🎜객체의 속성을 얻으려면 객체 변수.속성 이름을 사용합니다. 🎜rrreee🎜 관련 기사: 🎜🎜JavaScript 사용 시 주의할 점과 몇 가지 기본 구문_기본 지식🎜 🎜🎜🎜 웹 프론트엔드 디자인에서 주의해야 할 문제🎜🎜🎜관련 영상: 🎜🎜🎜JavaScript 디자인 패턴 영상 튜토리얼🎜🎜

위 내용은 자바스크립트가 주의해야 할 디자인들 (일부 정리)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿