美文网首页
任务16 js语法-简答题

任务16 js语法-简答题

作者: GarenWang | 来源:发表于2016-11-10 18:30 被阅读0次

1.CSS和JS在网页中的放置顺序是怎样的?

  • 一般而言,CSS放置在网页文档的头部,JS放置在网页文档的后面,CSS放在文档的头部,能够确保用户更早的看到页面,提高用户体验,但缺陷是若放置的CSS文件过多,过大,会延长屏幕的白屏时间,同时也有时引入插件,也需要把JS放在头部,如Jquery的引入,一般放在头部,因为后面的JS代码依赖于jquery.
  • 原因是由于浏览器的解析方式是自上而下的加载html文档,CSS是并行加载,而JS是阻塞加载,会影响页面的加载速度,如果JS的文件较大,很容易出现FOCU的现象,并且JS还有可能修改DOM,JS的执行可能依赖于最新的样式,这样需要保证在JS代码执行前必须所有的CSS样式加载和解析完毕。
  • 综上,CSS和JS的放置顺寻根本目的是为了提高页面的加载速度,所以必要的CSS和JS放置在头部,把不重要的CSS和js放在底部。
  • 一般放置方式,如图:
    ![1%B(5Q5]F1W42EZV(IS4H{O.png](https://img.haomeiwen.com/i3361706/29f43a7a55b85de3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  • 引用jQuery等库时:


    KX~OD87Z)TTQT_7)FP`HN%T.png

2.解释白屏和FOUC

  • 白屏与无样式内容闪烁(FOUC)是因为不同浏览器加载与显示页面的机制不同而造成的
  • 白屏:如果把样式放在底部,对于IE浏览器,在某些场景下(新窗口打开,刷新等)页面会出现白屏,而不是内容逐步展现如果使用 @import标签,即使 CSS 放入 link, 并且放在头部,也可能出现白屏。这是由于优先解析@import标签的文件,若文件过大,过大,就会导致加载时间过长,产生白屏。
  • FOUC:全称无样式闪烁,把样式放在页面底部,IE浏览器下点击点击链接会出现FOUC现象,Firfox会一直白屏。一种情况是由于将JS放在底部,会阻塞后面内容的呈现和其后组件的下载,产生FOUC现象;

3.async和defer的作用是什么?有什么区别

  • 一般情况下JS文件没有async和defer,会立即加载文件并解析,不扥带后面的文件的加载,即读到就执行,有了async和defer可以实现异步加载, async加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步), defer加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成,最终目的提高页面的加载速度和流畅性。使用方式如下:<script async src="app.js></script>,<script defer src="app.js></script>
  • 二者的区别是,defer的JS文件延迟到文档解析和显示有先后顺序,async不保证顺序。

4.网页的渲染机制

  1. 解析 HTML 标签, 构建 DOM 树
  2. 解析 CSS 标签, 构建 CSSOM 树
  3. 把 DOM 和 CSSOM 组合成 渲染树 (render tree)
  4. 在渲染树的基础上进行布局, 计算每个节点的几何结构
  5. 把每个节点绘制到屏幕上 (painting)
  6. 渲染机制图:
    ![VA4BMG]D4O]@GLMI`K0W5.png](https://img.haomeiwen.com/i3361706/f118a4320e6d5c10.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

5.JavaScript 定义了几种数据类型? 哪些是简单类型?哪些是复杂类型?

  • 数据类型有6种
  • 简单类型5种,null, undefined,boolean,string,number
  • 复杂类型1种,object
  • 简单类型中,undefined指的是变量未被赋值时,表示“未定义”或不存在,即此处目前没有任何值,会出现undefined,null是空值,不等同于undefined,空值表示空缺,即此处应该有一个值,但目前为空,而undefined只是没有赋值,不存在,所以二者不同
  • boolean,即布尔逻辑值,就是经常可见的false和true
  • number ,即数字,如1,2,3
  • string,字符串,如“hello world”
  • object,对象,如“ var obj={name:"小明",age:10}”

6.NaN、undefined、null分别代表什么?

  • NaN含义是Not a Number,表示非数字,NaN和任何值都不相等,包括自己,undefined:表示“未定义”或不存在,即此处目前没有任何值,null:表示空缺,即此处应该有一个值,但目前为空,
  • 类型不同,NaN是一中number类型,null属于特殊的object,undefinded属于undefined类型
  • 进行比较运算时,非严格相等情况下:undefined==null,NaN与任何值都不相等,与自己也不相等。

7.typeof和instanceof的作用和区别?

  • typeof 运算符可以返回一个值的数据类型,,可以是任意类型,如type 100 //"number"
  • instanceof运算符:此运算符可以判断一个变量是否是某个对象(类)的实例,返回值是布尔类型的,如var str=new String("hello");console.log(str instanceof String)代码输出的结果为true,因为str是对象String的对象实例。一般说来只有使用构造函数创建的对象才会返回true,否则返回false,不过数组是一个例外,都会返回true.

相关文章

  • 任务16 js语法-简答题

    1.CSS和JS在网页中的放置顺序是怎样的? 一般而言,CSS放置在网页文档的头部,JS放置在网页文档的后面,CS...

  • 任务16-JS 语法

    问答题 CSS和JS在网页中的放置顺序是怎样的?答:css:通过link标签将样式表放在 中。js:放在 中尾部。...

  • 任务16-JS 语法

    1. CSS和JS在网页中的放置顺序是怎样的? css放在head标签里 js放在body标签的最后主要是为了避免...

  • 任务16-JS 语法

    问答: 1. CSS和JS在网页中的放置顺序是怎样的? CSS一般放置在的 标签中。网页渲染时,先解析HTML标签...

  • Node.js基本语法

    title: Node.js基本语法date: 2019-07-16 09:59:16tags: [Node.js...

  • Part1.模块一:函数式编程与 JS 异步编程、手写 Prom

    简答题 一、谈谈你是如何理解JS异步编程的,EcentLoop、消息队列都是做什么的,什么是宏任务,什么是微任务?...

  • 任务十六~JS 语法

    问答部分 一、CSS和JS在网页中的放置顺序是怎样的? CSS放置在head标签之间,放在JS之前,因为如果把CS...

  • JS 语法(16)

    问答 一、CSS和JS在网页中的放置顺序是怎样的? 使用link标签将css样式表放在顶部 将 放在尾部 二、解...

  • 任务16-JS语法,JS基础知识1

    1.CSS和JS在网页中的放置顺序是怎样的?为什么会出现白屏和FOUC? 在写HTML代码时,我们都是将CSS文件...

  • 用 Vue.js 做代办事宜列表

    前提条件 Vue.js 介绍 Vue.js 模板语法 Vue.js 组件 概要 类型:实践难度:中等 任务描述 做...

网友评论

      本文标题:任务16 js语法-简答题

      本文链接:https://www.haomeiwen.com/subject/narxpttx.html