创建: 2019/02/20
迁入: 删除【WIP】标签(因为随时更新, 不存在完成不完成)
从【JavaScript 式与运算符】迁入typeof
更新: 2019/03/25 补充静态变量与参照变量
更新: 2019/06/06 增加==便于找到false判断, 增加false也是
parseInt, parseFloat, isNaN, Object.getPrototypeOf,
静态变量与参照变量 |
静态变量 |
数值,字符串, true/false, undefined/null, Symbol |
参照变量 |
除了静态变量外的一切量 |
|
类相关 |
判断类型
typeof |
返回对象值数据类型,字符串
数据 |
返回值 |
数字和NaN |
"number" |
字符串 |
"string" |
未定义值
(就一个undefined) |
"undefined" |
空值null |
"object" |
符号
Symbol("sample") |
"symbol" |
函数以外的对象 |
"object" |
函数 |
"function" |
|
|
|
|
|
instanceof |
a instanceof A // 对象 instanceof 构造函数
function F() {};
var obj = new F();
console.log(obj instanceof F); // true
console.log(obj instanceof Object); // true
console.log(obj instanceof Date); // false
|
prototype.isPrototypeOf() |
prototype.isPrototypeOf(对象);
function F() {};
var obj = new F();
console.log(F.prototype.isPrototypeOf(obj)); // true
console.log(Object.prototype.isPrototypeOf(obj)); // true
console.log(Date.prototype.isPrototypeOf(obj)); // false
|
|
属性相关 |
判断指定属性是否存在
in |
注: 包括继承的(__proto__的)
var a = { a: 1 };
var b = Object.create(a, {
b: {
value: 1,
writbale: true,
enumerable: true,
configurable: true
}
});
console.log(b);
console.log('------------------in--------------------');
console.log('b' in b); // true
console.log('a' in b); // true
console.log('--------------hasOwnProperty---------------');
console.log(b.hasOwnProperty('b')); // true
console.log(b.hasOwnProperty('a')); // false
|
Object.prototype.hasOwnProperty(key) |
注: 仅验证当前类(当前的prototype)
var a = { a: 1 };
var b = Object.create(a, {
b: {
value: 1,
writbale: true,
enumerable: true,
configurable: true
}
});
console.log(b);
console.log('------------------in--------------------');
console.log('b' in b); // true
console.log('a' in b); // true
console.log('--------------hasOwnProperty---------------');
console.log(b.hasOwnProperty('b')); // true
console.log(b.hasOwnProperty('a')); // false
|
|
Object.is(value1, value2) |
判断value1和value2是否相同 |
Object.isExtensible(obj) |
判断是否可以扩展 |
Object.isFrozen(obj) |
判断是否被冻结 |
Object.isSealed(obj) |
判断是否受保护 |
运算符 |
与运算符 |
若a可转换为true ,则返回b ;否则,返回a
|
或运算符 |
若a可转换为true, 返回a; 否则返回b
|
非运算符 |
若a可转换为true, 返回false; 否则返回true
|
|
|
|
|
|
会被转换为false 的表达式 |
==
● null
● NaN
● 0
● "", '', ``
● undefined
● false
|
|
|
|
|