基本数据类型
判断数据类型
typeof
let s = 'string', b = false, n = 10, list = [], o = {}, nl = null,u = undefined;
typeof s // 'string'
typeof b // 'boolean'
typeof n // 'number'
typeof list // 'object'
typeof o // 'object'
typeof nl // 'object'
typeof u // 'undefined'
- 数组、对象、null都是’object’;懂
- NaN 的数据类型是数值
- 数组的数据类型是对象
- 日期的数据类型是对象
- null 的数据类型是对象
- 未定义变量的数据类型是 undefined
-
constructor 构造函数指向
s.constructor === String // true
n.constructor === Number //true
b.constructor === Boolean // true
list.constructor === Array // true
o.constructor === Object // true
nl.constructor === Error
u.constructor === Error
null、undefined没有构造函数
-
toString,
Object.prototype.toString.call(s) // [object String]
Object.prototype.toString.call(n) // [object Number]
Object.prototype.toString.call(b) // [object Boolean]
Object.prototype.toString.call(list) // [object Array]
Object.prototype.toString.call(o) //[object Object]
Object.prototype.toString.call(nl) // [object Null]
Object.prototype.toString.call(nl) // [object Undefined]
-
转换
string的方法
通过String全局方法转换成字符串
toExponential()
- 返回字符串,对数字进行舍入,并使用指数技术法来写
- toFixed
- 返回字符串,对数字进行舍入,后面用指定位数的小数来填充
- toPrecision
- 返回字符串,把数字写为指定的长度
Numer()
-
一元运算符
9 + 'd' // '9d'
'd' + 10 // 'd10'
{} + 'd' // NaN
'd' + {} // ‘d[object Object]' 好熟悉
[] + 'd' // d
1 + null // 数字1
'' + null // 'null'
"5" + 2 // 返回 52 因为 2 被转换为 "2"
"5" - 2 // 返回 3 因为 "5" 被转换为 5
"5" * "2" // 返回 10 因为 "5" 和 "2" 被转换为 5 和 2
判断属性是否存在
let obj = {
a:10
}
'a' in obj // true
obj.hasOwnProperty("a") // true
in Object
- in 对判断自身的可枚举值,也会判断原型链上继承过来的可枚举值
function P(params) {
this.a = 10
}
let p = new P();
p.b = 20;
console.log(p); // P {a: 10,b:20}
console.log(('a' in p)); // true
console.log(('b' in p)); // true
instanceof
hasOwnProperty
```javascript function P(params) { this.a = 10 } P.prototype.b = 20 let p = new P();
Object.prototype.hasOwnProperty.call(p, “toString”); // false Object.prototype.hasOwnProperty.call(p, “b”); // false Object.prototype.hasOwnProperty.call(p, “a”); // true ```
- 指示对象 自身属性 中是否具有指定的属性
-
getOwnPropertyNames
该方法返回一个指定对象的所有自身属性和属性名。包括不可枚举属性,不包括Symbol值做为名称的属性组成的数组
getOwnPropertSymbols
-
propertyIsEnumerable
-
可枚举值
| | 可枚举属性 | 不可枚举属性 | | | —- | —- | —- | —- | | 判断 | 通过propertyIsEnumerable和hasOwnProperty的方法的调用会返回true。 | 会返回false.
通过hasOwnProperty获取属性会使用p…过滤可枚举属性 | 可以通过
in 判断 | | 访问 | Object.keys
getOwnPropertyNames
getOwnPropertySymbols | 获取会使用p…..过滤可枚举属性 | | | 迭代 | Object.keys
getOwnPropertyNames
getOwnPropertySymbols | 获取会使用p…..过滤可枚举属性 | |
JavaSript全局方法及属性
属性 | 描述 |
---|---|
Infinity | 代表正的无穷大的数值。 |
NaN | 指示某个值是不是数字值。 |
undefined | 指示未定义的值。 |
函数 | 描述 |
---|---|
decodeURI() | 解码某个编码的 URI。 |
decodeURIComponent() | 解码一个编码的 URI 组件。 |
encodeURI() | 把字符串编码为 URI。 |
encodeURIComponent() | 把字符串编码为 URI 组件。 |
escape() | 对字符串进行编码。 |
eval() | 计算 JavaScript 字符串,并把它作为脚本代码来执行。 |
isFinite() | 检查某个值是否为有穷大的数。 |
isNaN() | 检查某个值是否是数字。 |
Number() | 把对象的值转换为数字。 |
parseFloat() | 解析一个字符串并返回一个浮点数。 |
parseInt() | 解析一个字符串并返回一个整数。 |
String() | 把对象的值转换为字符串。 |
unescape() | 对由 escape() 编码的字符串进行解码 |