JS中一些容易被忽略的东西(一)

83 阅读1分钟

语言基础

变量

全局声明

  • let在全局作用域中声明的变量,不会成为window对象的属性
let age = 18;
console.log(window.age); // undefined

const 声明

  • 声明基本数据类型变量时,必须同时初始化变量,修改const声明的变量会报错
const age = 18;
age = 28; // typeerror

数据类型

null类型

let car = null
console.log(typeof car); // 'object'

NaN

console.log(NaN == NaN); // false

console.log(isNaN(NaN)); //true
console.log(isNaN(10)); //false
console.log(isNaN('10')); // false 可以转10
console.log(isNaN('blue')); // true
console.log(isNaN(true)); // false 可以转1

数值转换

  • Number() 转型函数,可用于任何数据类型
  • parseInt() 转为整数
  • parseFloat() 转为浮点数

object类型

属性(每个object实例都有)
  • constructor - 创建当前对象的函数
  • hasOwnProperty(propertyName) - 判断当前对象实例上是否存在给定的属性
  • isPrototypeOf(object) - 判断当前对象是否为另一个对象的原型
  • propertyIsEnumerable(propertyName) - 判断给定的属性是否可以使用
  • toLocaleString() - 返回对象字符串,字符串反映对象所在的本地化执行环境
  • toString() - 返回对象字符串
  • valueOf() - 返回对象对应的字符串、数值或布尔值

操作符

一元加和减

  • 应用到非数值,执行和**Number()**一样的类型转换
+"01" - 1
+"1.1" - 1.1
+"z" - NaN
+false - 0
+1.1 - 1.1
+obj - -1

位操作符

let num = -18;
console.log(num.toString(2)); // -10010
  • 按位非 ~
    • 返回数值的补码
const num1 = 25;
const num2 = !num1;
  • 按位与 &
    • 两个数的每一位对齐
    • 两个都是1 => 1
    • 一个是0 => 0
  • 按位或 |
    • 一个是1 => 1
    • 两个都是0 => 0
  • 按位异或
    • 同0异1

语句

with语句

const token = res.data.token;
const total = res.data.total;
// use with
with(res){
	const token = data.token;
	const total = data.total;
}