知识梳理之对象,数据类型
前端笔记
- 对象属性
- 两种数据类型
- 六种基础数据类型
- 三种常用引用类型
- 预解析
- 两种数据类型的区别
- 1.值是否可变
- 2.比较,是否两个数据类型的比较
- 3.值存放的位置
- 4.复制的情况
- 内存分配和垃圾回收
- 检测数据类型
- 基本数据类型检测:
- 引用类型(对象类型)检测
- 用来更精准的控制对象的数据类型检测(包含数组和对象)
- instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链
- constructor 也能判断数据类型
- 创建对象的五种方式
- 1.通过Object 类创建对象
- 2.通过字面量创建对象
- 3.工厂方式定义
- 4.构造函数方式定义
- 5.通过Object.create 方式定义
- 6.原型方式创建对象
- 7.混合模式
- 8.class 类定义对象
- 过程式开发与面向对象开发
- 面向过程
- 面向对象
- 面相对象的三大特点
- 封装
- 继承
- 多态
- 面向对象的五大基本原则
- 单一职责原则:
- 开放封闭原则
- 接口分离原则
- 内部对象
- 浏览器对象(宿主对象)
- 自定义对象
- 函数对象和普通对象的区别:
- 对象属性的读取
- 设置对象属性
- 删除对象属性
- 对象属性查找
- 属性检测
- 对象属性遍历
- 序列化对象
- 属性的特性,属性描述符
- 数据属性
- 访问器属性:
- JavaScript 中的可枚举属性与不可枚举属性
- 对象属性:
- 对象方法
- Array 扩展
- 组件、插件、模块、框架、架构
- 组件
- 插件
- 模块
- 框架
- 架构
对象属性
两种数据类型
六种基础数据类型
六种基础数据类型(null,undefined,boolean,string,number,symbol)
以key,value 存取在栈区
var str = '123' ;var num = 1;var bol =true;var km = null;//es6中定义一种独一无二的值var sym=Symbol("name");
三种常用引用类型
3种常用引用类型:object ,array,function 栈区存放的是指针(地址),值是放在堆中的
var arr=[];
var obj={}
var fun=function(){};
const kk={name:"xj"};
kk.color="red";
console.log(kk);//Object {name: "xj", color: "red"}
const kk2="xj";
kk2="kk";
console.log(kk2);//Uncaught TypeError: Assignment to constant variable.var obj = new Object();
var obj_arr= new Array();
//实例化了一个String对象,不是基本数据类型
var s1 = new String('123');
var s4 = new String('123');
//实例化的s1和s4都是实例化的一个对象,对象都是引用类型,所以s1和s4 是不相等的。
s1==s4 //false //函数传参
var s2 = String('123');
//直接字面量
var s3='123';
console.log(s1,s2,s3);//String {0: "1", 1: "2", 2: "3", length: 3, [[PrimitiveValue]]: "123"}0: "1"1: "2"2: "3"length: 3__proto__: String[[PrimitiveValue]]: "123" "123" "123"
s1===s2;//false
s1===s3;//false
s2===s3;//true
s1==s2;//true
s2==s3;//true
s1==s3;//true
//等号运算符,从左往右
s1==s2==s3;//false
预解析
预解析只能发生在通过var 和function定义的关键字身上。
预解析案例:
// 案例1
var a=1;
function f(){
console.log(a); //1 读取外部的变量1
a=2;
console.log(a); //2 全局变量a的值改为2
}
f();
console.log(a); //2 a的值为2
//案例2
var a;
var b;
(function(){
console.log(a); //undefined
console.log(b); //undefined
var a=b=3; //等价于 var a=3; b=3;
console.log(a); //3 a为局部变量
console.log(b); //3
})();
console.log(a); //undefined
console.log(b); //3
//案例3
var a = 1;
function f(){console.log(a); //undefinedvar a = 3;console.log(a); //3
}
f();
console.log(a); //1
//案例4var a = 1; function f(){console.log(a); //undefined a = 2; console.log(a); //2 var a = 3; console.log(a); //3}f(); console.log(a); //1
//案例5
var a=1;
function f(){console.log(a); //1a=2;console.log(a); //2
}
f();
console.log(a); //2
两种数据类型的区别
类比面试选人(来自哪里(位置),可靠性(忠诚度),干活情况(复制),选谁(
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
