饥人谷技术博客

js基础——基本概念、数据类型、运算符、流程控制语句

2016-07-27  本文已影响0人  __Qiao

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

CSS和JS在网页中的放置顺序

二、解释白屏和FOUC

三、asyncdefer的作用是什么?有什么区别

四、简述网页的渲染机制

网页的渲染主要分为以下几步:

当浏览器从服务器接收到了html文档,并把html在内存中转换成DOM树,在转换过程中如果发现某个节点上引用了CSS或者image,就会再发一个request去请求CSS或image,然后继续执行下面的转换,而不需要等待request的返回,当request返回后,只需要把返回的内容放入到DOM树中对应的位置就可以了。但当引用了JS的时候,浏览器发送一个JS request就会一直等待该request的返回。

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

JavaScript的数据类型共有六种:

其中有5种简单数据类型(基本数据类型):数值(Number)、字符串(String)、布尔值(Boolean)、Undefined、Null;

1种复杂数据类型:对象(Object)

对象又可以分成三个子类型:

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

NaN有两个特点:
* 任何涉及NaN的操作(例如NaN/10)都会返回NaN
* NaN与任何值都不相等,包括NaN本身

七、typeofinstanceof的作用和区别?


因为typeof遇到Null、数组、对象时都会返回object,所以我们要判断一个对象是否是数组或判断某个变量是否是某个对象的实例时要选择用instanceof运算符。

代码实例

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

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()); //146913500108
console.log(+"4");  //4


操作符"+"对不同的数据类型有不同的含义:

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

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

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

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

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

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

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

console.log(a);  //undefined
var a = 1;
console.log(a);  //1
console.log(b);  //报错

js变量提升

JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升

由于变量提升,我们如果声明了变量,即使在声明语句前使用也是可以的,只不过其值是初始值undefined


本文版权属吴天乔所有,转载务必注明出处。

上一篇 下一篇

猜你喜欢

热点阅读