JS入门基础

作者: 尹萨萨 | 来源:发表于2016-09-05 19:05 被阅读0次

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

    css有三种放入方式

    • 通过外部样式表放入
      link元素
      <head>
      <link rel="sheetstyle" type="text/css" href="example.css">
      </head>
      
       **@import元素**
    
      <style>
      @import url(example.css)可放入样式表内部,但必须放在其他样式元素之上,否则可能被忽略
      </style>
    
    
    - 通过内联样式放入
    

    <style>
    a { text-decoration:none;}
    p {border: 1px solid #eee;}
    </style>

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

    <div style="display:inline-block">

    
    >JS有两种引入方式
    
    - 通过引入外部JS文件
    

    <script type="text/javascript" src="example.js"></script>

    - 直接嵌入js代码
    

    <script type="text/javascript">
    function sayHi(){
    alert("Hi");
    }
    </script>

          
    ###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入门基础

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