js语法

作者: 简_developer | 来源:发表于2016-05-06 18:16 被阅读0次

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

    css在html文档里一般放在head内,title后,用script包裹

    js一般放在body内最下方

    二.解释白屏和FOUC

    白屏和fouc是把css放在body尾部时,在浏览器不同工作模式下产生的:

    在加载完html和css后才渲染呈现的工作模式下,即浏览器根据放置顺序先加载html,html加载完后再加载css样式,然后才在页面呈现html和css,那么在css加载完前的这一段时间,页面不会呈现内容,此为白屏现象

    在“边加载边显示”的工作模式下,浏览器在加载html时便会立即将它呈现出来,此时没有样式,html加载完后再去加载css,此时样式才显示出来,那么在打开页面看到元素内容到出现css样式的这一段时间看到的变化称为fonc,即无样式内容闪烁。

    另外因为js会阻止后面内容的执行和下载,所以当把js放在head内时,同样会出现白屏现象。

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

    async和defer是让浏览器在遇到js时,不要停止对html的解析

    区别在于,async在js下载完后停止html的解析,执行js,js执行完后再进行html解析;而defer推迟在js下载完后不会立即执行js,会等到html解析完后再执行js

    四.简述网页的渲染机制?

    1.根据用户的访问请求去获得网站的资源,html文档、css样式、js文档等;

    2.解析html标签,构建dom树

    3.解析css标签,构建cssom树

    4.组合dom树和cssom树生成渲染树(render tree)

    5.布局,计算每个节点的几何结构

    6.调用浏览器,将其绘制到屏幕上

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

    6种,分别是null(空指针,可用来释放空间),undefined(有声明,无赋值,有指针,无指向),boolean,number,string,object(无序键值对组合)

    前面5个为简单类型,object为复杂类型。注意null和undefined是两个特殊的值。

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

    NaN含义是Not a Number,表示非数字,NaN和任何值都不相等,包括自己

    Undefined类型只有一个值undefined,表示变量只被声明,没有被初始化,也就是有这个指针,但是这个指针没有指向任何空间

    Null类型只有一个值:null,表示空指针,也就是不存在的东西,可以用来释放空间

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

    typeof运算符返回一个值的数据类型,比如number、string、boolean,还可以是function,undefined,object

    instanceof是用来确定一个对象是否是某个构造函数的实例,可以用来判断值的类型,例如[1,2,3] instanceof Array,它会返回true说明[1,2,3]是属于数组的一个实例,它的左边放置对象,右边放置构造函数;

    区别:在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 “object”。这就需要用到instanceof来检测某个对象是不是另一个对象的实例。

    1.完成如下代码判断一个变量是否是数字、字符串、布尔、函数

    2.以下代码的输出结果

    console.log(1+1)输出2;

    console.log(“2”+”4”)输出24;

    console.log(2+”4”)输出24;

    console.log(+new Date())输出1462523357257;

    console.log(+”4”)输出4;

    3.以下代码的输出结果

    var a = 1;

    a+++a;(3,此时a等于2)

    typeof a+2;

    输出为字符串”number2”

    4.遍历数组,把数组里的打印数组每一项的平方

    var arr = [3,4,5]

    // todo..

    // 输出 9, 16, 25

    5.遍历 JSON, 打印里面的值

    var obj = {

    name: ‘hunger’,

    sex: ‘male’,

    age: 28

    }

    //todo …

    // 输出 name: hunger, sex: male, age:28

    6.下面代码的输出是? 为什么

    console.log(a);

    var a = 1;

    console.log(a);

    console.log(b);

    第一个log 输出 undefined 因为变量提升 但未进行赋值;

    第二个log 输出 1 因为给a赋值了是1;

    第三个log 输出 b is not defined,因为b未进行定义,不可使用;

    相关文章

      网友评论

          本文标题:js语法

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