一、关于css

样式优先级:
行内样式>id选择器样式>类选择器样式>标签选择器样式>通配符选择器的样式>继承样式>默认样式


二、关于js

关于问题:JavaScript中的所有事物都是对象??


从typeof和instanceof入手。

1.typeof

typeof 用以获取一个变量或者表达式的类型,用于基本类型。
typeof内容如下,需要注意的是Null对应的也是object类型,图上还缺少了一个数据,数组对应的也是object类型。
还需要注意的是,js中的变量是没有类型的,只有值才有;也就是说,语言引擎不要求变量总是持有于其初始值同类型的值。(一个变量可以现在被赋值为字符串类型值,随后又被赋值为数字类型值)。对变量执行typeof操作时,得到的结果并不是该变量的类型,而是该变量持有的值的类型,js中的变量没有类型。
clipboard.png
综上所述,如果要判断是否是对象,需要先考虑null情况(===null),还有数组的情况(instanceof Array);
判断是否为数组,需要用instanceof来判断。

2.instanceof

定义:instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上,用于引用类型。
js中的基本类型的值,若是直接赋值,则不能判断(直接赋值是没有原型链的),一般是需要通过new调用构造函数才能判断,所以基本类型不建议用instanceof来判断是否为基本类型;引用类型就没有这个问题了,可以通过instanceof直接判断。


说到上述内容的类型,不得不添加一点有关类型的内容,js中分为基本类型和引用类型。为何要如此分呢?
基本数据类型的值是按值访问的,栈内存中包括了变量的标识符和变量的值;引用类型的值是按引用访问的,引用类型的值是保存在堆内存中的对象,栈内存中保存了变量标识符和指向堆内存中该对象的指针,堆内存中保存了对象的内容。具体内容参考 https://segmentfault.com/a/11...

以下内容是上述网址的简化版
1. 基本类型:Undefined、Null、Boolean、Number、String、Symbol (new in ES 6)
2. 引用类型:Object 类型、Array 类型、Date 类型、RegExp 类型、Function 类型 等


回到最初的问题:JavaScript中的所有事物都是对象??这句话是正确的。
这句话怎么理解呢,number、string等是数据类型,他们肯定不是对象,但是所有的语言中都有这些数据类型,是通用的,所以js也有;而在js中,数据类型是最底层的,所有的事物都是在这个之上才进行的,那就是对象了。

可能还有人说函数也是对象吗,是的,准确的说,函数实例化后是对象。可以参考这个 http://www.cnblogs.com/giggle...
简单来说,这个要从原型链的角度来解答,判断是否为对象,就是判断是否有原型链。
每个对象都有一个__proto__属性,每个函数都有一个prototype属性。但其实,实例的__proto__来自于构造函数的prototype。
流程如下:
clipboard.png

验证如下:
clipboard.png


历时两天的内容整理结束!


喆喆
74 声望7 粉丝

小白一枚!!!