js语法

一.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语法)