标签:eof 变量 支持 报错 length 访问 表示 asc can
夯实Javascript基础。
基本类型有六种: null,undefined,boolean,number,string,symbol。
基本类型的值是保存在栈内存中的简单数据段
基础类型最重要的特性
  // str 不能调用 Array的 sort 和 splice
  Array.prototype.sort.call('strxyz');
  // Uncaught TypeError: Cannot assign to read only property '2' of object '[object String]'
  Array.prototype.splice.call('strxyz');
  // Uncaught TypeError: Cannot assign to read only property 'length' of object '[object String]'
  // object 可以使用 Array的sort 和 splice
  Array.prototype.sort.call({x: 1, y: 2});
  // {x: 1, y: 2}
  Array.prototype.splice.call({x: 1, y: 2});
  // []基础类型没有__proto__没有属性
  str.x = 1;
  console.log(str.x); // undefined所有对基础类型属性的访问都是访问的基本包装类型(String、Number、Boolean)
  当你调用 `str.length` 时,实际过程是这样的:
  - 创建String类型的一个实例
  - 在实例上调用指定的方法
  - 销毁这个实例
  var str = 'abc';
  var _str = new String(str);
  var len = _str.length;
  _str = null;
  console.log(len);其他特性
undefined null false NaN ‘‘ 0 -0 为 false,其他都为 true
1 === 1.0var a = NaN; a !== a;String 类型是类数组,具有iterator
typeof String(‘x‘)[Symbol.iterator] === ‘function‘检测基础类型用 typeof
  // typeof 只适合检测 基础类型
  typeof new Date() // 'object'
  typeof [] // 'object'
  typeof {} // 'object'
  typeof console.log // 'function'基本类型转换时,首先会调用 valueOf,然后调用 toString。并且这两个方法可以重写。
  var a = 1;
  var obj = {x: 1};
  obj.toString === '[object Object]';
  var arr = [2, 3];
  arr.toString() === '2,3';
  a + obj === '1[object Object]';
  a + arr === '12,3';Symbol.toPrimitive该方法在转基本类型时调用优先级最高。
  let a = {
    valueOf() {
      return 1;
    },
    toString() {
      return '2';
    },
    [Symbol.toPrimitive]() {
      return 3;
    }
  }
  1 + a // => 4number,那么会转换为字符串(toString)进行拼接持续更新中,Github信息更多哦,你的?是我最大的支持。查看详情,
标签:eof 变量 支持 报错 length 访问 表示 asc can
原文地址:https://www.cnblogs.com/zhongmeizhi/p/10647907.html