JS入门基础

`###1.CSS和JS在网页中的放置顺序是怎样的?
由于页面渲染规则及相关属性的关系
css外部引入代码一般放置于head标签之内;css文件可以几个同时进行加载
而JS外部引入的代码则放在所有元素之后标签之前;js只能单个逐步加载

css有三种放入方式

  • 通过外部样式表放入
    link元素
    
    
    
    
   **@import元素**
  

- 通过内联样式放入

- 通过直接在元素标签内加入样式引入


>JS有两种引入方式

- 通过引入外部JS文件

- 直接嵌入js代码

      
###2.解释白屏和FOUC
- 白屏产生原因
当样式表被放在页面底端的时候,对于某些情况(新窗口打开,刷新等),浏览器不会由上而下对代码进行逐一加载,而是会等到加载完所有css样式后,统一 进行,而这段时间内,页面都会展现内容,所以会出现白屏;
另外把js文件放入页面顶部,也会产生白屏现象。

- FOUC(flash of unstyle content)
同样的当样式放入页面底部时,(点击链接,输入url,使用书签进入时),浏览器会逐步加载无样式内容,当css全部加载完毕后,突然进行样式展现,产生fouc的情况。


###3.async和defer的作用是什么?有什么区别
**都只适用于外部js文件**
- async立即下载js文件,即排在js后续的文档也可并行开始,并且不影响其他文件的运行。
    不保证运行的顺序。例如两个依次排列的js文件,第二个js有可能先于第一个运行。
- defer 立即下载js文件,并且当所有文档完全解析后在运行;
  可保证运行的顺序,按照js文件的先后顺序进行加载,并且所有文档解析后,再加载js文件。

###4.简述网页的渲染机制

- 首先加载html标签,构建DOM tree;
- 其次对于css样式进行解析,构建CSS rule tree
- 解析Javascript脚本,主要是通过DOM API和CSSOM API来操作DOM Tree和CSS Rule Tree.
- 所有解析文档组合构建 render tree;
- 集合redner tree的节点,Layout – 定位坐标和大小
- 最后进行页面绘制正式开画

[参考文章](http://www.zhihu.com/question/20117417)

###5.JavaScript 定义了几种数据类型? 哪些是简单类型?哪些是复杂类型?
JavaScript定义了6中数据类型,5个简单类型,1个复杂类型;
- 简单类型
  -  null
  - undefind
  - number
  - string
  - boolean
- 复杂类型
 - object

###6.NaN、undefined、null分别代表什么?
- NaN
用来表示属于number数字类型的的非数字
- nudefined
用来表示未被定义的声明类型
- null
用来表示一个空的指针


###7.typeof和instanceof的作用和区别?
- typeof 运算符,可以判断一个变量的数据类型。
在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "object"。

- instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型。与 typeof 方法不同的是,instanceof 方法要求开发者明确地确认对象为某特定类型。


 [instanceof 详解](https://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/)
[运算符优先级](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)

版权归本人及饥人谷所有.

你可能感兴趣的:(JS入门基础)