요즘 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
表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用null
。undefined
仅仅在判断函数参数是否传递的情况下有用
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个键值对,其中每个键又称为对象的属性,例如,person
的name
属性为'Bob'
,zipcode
属性为null
。
要获取一个对象的属性,我们用对象变量.属性名
==
비교로, 자동으로 데이터 유형을 변환한 다음 비교하는 경우가 많습니다.
두 번째 유형은 데이터 유형이 자동으로 변환되지 않는 ===
비교입니다. 데이터 유형이 일치하지 않으면 false
가 반환됩니다. 다시. JavaScript의 이러한 설계 결함으로 인해 ==
비교를 사용하지 않고 항상 ===
비교를 사용하세요.
2. NaN 3. null 및 정의되지 않음 위 내용은 자바스크립트가 주의해야 할 디자인들 (일부 정리)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!person.name; // 'Bob'
person.zipcode; // null
NaN
이 특수 숫자는 자신을 포함한 다른 모든 값과 동일하지 않습니다. rrreeeNaN
을 확인하는 유일한 방법은 를 통해서입니다. isNaN() 함수: null
은 0
및 null과 동일한 "빈" 값을 나타냅니다. 문자 문자열 ''
은 다름, 0
은 숫자 값, ''
는 길이가 0인 문자열을 나타내고 null code>는 "비어 있음"을 의미합니다.
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 디자인 패턴 영상 튜토리얼🎜🎜