初识JS

2016-08-16  本文已影响0人  小周师傅

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

2.解释白屏和FOUC

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

<script defer src="script.js"></script>
<script async src="script.js"></script>
如图,蓝色线代表网络读取,红色线代表执行时间,这俩都是针对脚本的;绿色线代表 HTML 解析。

4.简述网页的渲染机制

1.解析HTML标签,构建为DOM树
2.解析CSS文件,构建为CSSOM树
3.构建render树,render树由DOM树与CSSOM树组合而成
4.布局render树,确定每个节点在屏幕上的确切坐标
5.绘制,遍历render树,使用UI后端层绘制每个节点
更多参考见浏览器内部工作原理

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

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

NaN == NaN; //false
NaN===NaN;//false
var i;
i // undefinedfunction
 f(x){console.log(x)}
f() // undefined
var o = new Object();
o.p // undefined
var x = f();
x // undefined

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

由于ECMAScript是松散型的,因而需要一种方式来检测给定变量的数据类型。

代码

1.完成如下代码判断一个变量是否是数字、字符串、布尔、函数 (难度*)ps: 做完后可参考 underscore.js 源码中部分实现

function isNumber(el){
    if (typeof el==="number"){
      return true;
    }   
      else{
        return false;
      } 
}
function isString(el){
     if (typeof el==="string"){
      return true;
    }   
      else{
        return false;
      } 
}
function isBoolean(el){
     if (typeof el==="boolean"){
      return true;
    }   
      else{
        return false;
      } 
}
function isFunction(el){
     if (typeof el==="function"){
      return true;
    }   
      else{
        return false;
      } 
}
var a = 2,
    b = "jirengu",
    c = false;
alert( isNumber(a) );  //true
alert( isString(a) );  //false
alert( isString(b) );  //true
alert( isBoolean(c) ); //true
alert( isFunction(a)); //false
alert( isFunction( isNumber ) ); //true

2.以下代码的输出结果是?(难度**)

console.log(1+1); //2
console.log("2"+"4");//24
 console.log(2+"4"); //24
console.log(+new Date());//1471333192537
console.log(+"4");//4

3.以下代码的输出结果是? (难度***)

var a = 1;
a+++a;//3
typeof a+2;//numer2

4.遍历数组,把数组里的打印数组每一项的平方 (难度**)

var arr = [3,4,5];
for( var i=0;1< arr.length;i++){
console.log(arr[i]*arr[i]);
}

5.遍历 JSON, 打印里面的值 (难度**)

var obj = {
 name: 'hunger', 
sex: 'male', 
age: 28
}
for (var i in obj){
console.log(i+":"+obj[i]);
}

6.下面代码的输出是? 为什么 (难度***)

console.log(a);//undefined,变量声明提升,a已经声明过,会被提到全局作用域的开头
var a = 1;
console.log(a);//1
console.log(b);//报错

本文版权归本人和饥人谷所有,转载请注明来源。

上一篇下一篇

猜你喜欢

热点阅读