JavaScript重点知识

1.JavaScript由三部分组成:

  • ECMAScript:提供核心语言功能
  • 文本对象模型(DOM):提供访问和操作网页内容的方法和接口
  • 浏览器对象模型(BOM):提供与浏览器交互的方法和接口

2.自定义构造函数创建对象

//自定义构造函数创建对象
//函数与构造函数的区别在于名字(首字母)是不是大写
function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayHi = function () {
    console.log("我叫" + this.name + ",年龄是:" + this.age);
  }
}
var obj1 = new Person("小明", 10);
console.log(obj1.name);
console.log(obj1.age);
obj1.sayHi();

var obj2 = new Person("小芳", 18);
console.log(obj2.name);
console.log(obj2.age);
obj2.sayHi();

console.log(obj1 instanceof Person); //true
console.log(obj2 instanceof Person); //true

//自定义狗的构造函数
function Dog(name, age, sex) {
  this.name = name;
  this.age = age;
  this.sex = sex;
}
var dog = new Dog("小黑", 10, "男");
console.log(dog instanceof Person) //false
console.log(dog instanceof Dog) //true

 3.json对象以及json对象的遍历(for-in循环)

//遍历对象,是不能通过for循环遍历,无序
var json = {
  "name": "Lee",
  "age": "25",
  "sex": "female"
};
var key = "height";
console.log(json[key]); //undefined

//只要用.(点)了之后,score属性就被创建了,只不过没有赋值
console.log(json.score) //undefined

//可以通过for-in循环
for (var key in json) {
  //这里不能用.来拿值,用点会创建新的名为key的属性
  // console.log(key+"---"+json.key);//这是不对的
  console.log(key + "---" + json[key]);
  /* 输出结果:
    name---Lee
    age---25
    sex---female
  */
}

 4.简单类型和引用类型

  • 原始数据类型:number, string, boolean, undefined, null, object
  • 基本类型(简单类型),值类型:number, string, boolean
  • 复杂类型(引用类型):object
  • 空类型:null, undefined

值类型的值在哪一块空间存储?  栈中存储

引用类型的值在哪一块空间存储?  对象在堆上存储,地址在栈上存储。

 注意这里的地址位实际有16位,我在这里只是简写,说明一下原理。

 

posted @ 2020-03-10 16:11  木子呆头  阅读(268)  评论(0编辑  收藏  举报