30.基本数据类型和基本包装类型

  • 以前之所以能够访问基本数据类型的属性和方法,是因为在运行的时候系统自动将基本数据类型包装成了对象类型

  • 看下面,str为什么有length属性,str是基本数据类型,基本数据类型是没有属性和方法的,这是因为js帮我们包装成了相应的对象类型

    1
    2
    3
    let str = "www.it666.com";
    // let str = new String(str);//隐式
    console.log(str.length);
  • 有哪些基本数据类型?
    字符串类型 / 数值类型 / 布尔类型 / 空类型 / 未定义类型

  • 字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量。

    字面量分为字符串字面量(string literal )、数组字面量(array literal)和对象字面量(object literal),另外还有函数字面量(function literal)。

示例:

1
var test="hello world!";

“hello world!” 就是字符串字面量,test 是变量名。

  • 通过字面量创建的基本数据类型的数据都是常量,常量是不能被修改的,如果修改的话, 每次修改或者拼接都是生成一个新的

  • 字符串字面量只能通过replace修改,返回一个新的str

    1
    2
    3
    4
    5
     let str = "abc";
    // str[1] = "m";//不能修改
    let newStr = str.replace("b", "m");
    console.log(str); // abc
    console.log(newStr); // amc
  • 基本类型特点,没有属性和方法

  • 对象类型的特点,有属性和方法

  • 未包装的string会访问失败,我们没有对str进行包装

1
2
3
4
5
6
7
let str = "lnj";
str.age = 34;
str.say = function () {
console.log("hello");
}
console.log(str.age); // undefined
str.say(); // str.say is not a function