浅谈JavaScript面向对象与基础类型

每日总结

1.JavaScript面向对象

2.七大数据类型类型

1.JavaScript面向对象的理解

JavaScript面向对象和其他基于类的面向对象语言相比他是基于原型的,面向对象其实就是一种接近人类思维的一种概念,举个例子,先有一个苹果(对象),我们知道这个苹果能吃,之后才知道所有苹果都能吃(类)。说起面向对象大家都会想到封装继承多态,这里我要强调的是他们的不同点,JavaScript是一门弱类型语言,在很多地方并不严谨但是自由度也更高,他的对象是可以在运行中被修改的。

var o = {a:1};
    o.b = 2;
    console.log(o.a + o.b);//输出为3

在一般基于类的编程语言中这种是不能理解的,但是回归本质来讲这种往往也是一种合理的面向对象方式。要知道所谓的对象:

1.是一个可以触摸或者可以看见的东西;

2.人的智力可以理解的东西;

3.可以知道思考或行动(进行想象或者施加动作)的东西;

这里再说一下数据的属性的四个特征

value:属性的值。

writable:决定属性能否被赋值。

enumerable:决定for in 能否枚举该属性。

configurable:决定该属性能否被删除或者改变特征值。

如果我们想要去改变属性的特征我们可以使用object.defineProperty:

 var o = {a:1};
    //使用defineProperty方式给对象添加属性
    Object.defineProperty(o,'b',{value:2,writable:false,enumerable:false,configurable:true});
    //查看属性
    console.log(Object.getOwnPropertyDescriptors(o,'a'))
    Object.getOwnPropertyDescriptors(o,'b');
    o.b = 3;
    console.log(o.b);//输出为2

每次访问属性都会执行getter和setter函数。

   var obj = {get a(){return 1}}
    console.log(obj.a)

2.JavaScript七大数据类型

2.1 Undefined;

表示未定义,在JavaScript当中属于一个变量而非关键字,为了避免被篡改建议用void 0 替代他。

2.2 Null;

代表已经声明了但是为空。

2.3 Boolean;

布尔类型,只有真(true)和假(false)两个值。

2.4 String;

字符串的最大长度为2^52-1,字符串一旦被构造出来就无法变更,所以字符串具有值类型的特征。

2.5 Number;

数字类型,其中包含单精度小数与双精度小数,比如0.1+0.2 != 0.3 这就涉及到精度问题,所以尽量避免使用小数判断防止出错,number也是有最大长度限制的,比如正无穷与负无穷。

2.6 Symbol;

ES6的新类型,之后再详细介绍

2.7 Object;

对象类型,刚刚讲过了对象定义了属性的集合,属于key-value结构

发布了46 篇原创文章 · 获赞 43 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Meng_ya_zi/article/details/91912068