JS语法

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

  • CSS样式在网页中应当靠前放置,一般放置在head标签中,一般用link标签或者style标签引入。在加载body之前就加载完css,避免浏览器的白屏和无样式闪烁问题。
  • JS放置在body标签的尾部,一般使用script标签引入,一方面因为加载JS时,一般情况下会阻塞页面的渲染,另一方面防止需要操作的DOM的JS不会因为DOM还没有加载完成而出现错误。

解释白屏和FOUC。

  • 白屏和无样式闪烁(FOUC)问题,都是浏览器对无样式内容进行渲染时出现的问题。在浏览器还没有得到样式CSS时,有些情况下,即使收到内容,但对于无样式内容不进行渲染,就出现了白屏问题。
  • 无样式内容闪烁是浏览器已经渲染收的的无样式内容,这时候突然收样式,然后给页面进行 重新渲染的过程,之前的页面突然呈现出样式,给人的感觉像突然闪了一下。

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

async和defer是JS脚本异步加载的两种方式:

  • defer,加载后续文档元素的过程将和script.js的加载并行进行(异步),但JS的执行要在所有元素解析完成后进行。
  • adync,加载和渲染后续文档元素的过程将和JS的加载与执行并行进行。

简述网页的渲染机制?

分为四个阶段:
1 解析代码:将HTML文件解析成DOM,将CSS文件解析成CSSOM。
2 对象合成:将DOM和CSSOM合成一颗渲染树(render tree)
3 布局:计算出渲染树的布局(layout)
4 绘制:将渲染树绘制到屏幕
四部并不是严格按照顺序进行,页面会希望用户尽早看到内容,所以会出现什么都没有加载完毕 浏览器将已经下载的内容先呈现。

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

JavaScript定义了6种数据类型:

  1. 数值(number):整数和小数。
  2. 字符串(string):字符组成的文本。
  3. 布尔值(boolean):ture和false两个特定值。
  4. undefined: 表示未定义或者空缺,此处目前没有任何值。
  5. null:表示空缺,此处应该有一个值但此时未空。
  6. 对象(object):各种值组成的集合。

五种简单数据类型:number,string,boolean,undefined,null。
一种复杂类型:object。

NAN、null和undefined分别代表了什么?

NAN:表示not a number,表示这不是一个数,可能是除了数以外的任何东西,不于自己相等。
Undefined与null意义非常接近,在if语句中都代表false,undefined == null 结果也为true。区别在于,null是属于对象的,typeof null的结果是 “object”,在理解上,null表示空值,而undefined表示未定义。

typeof 和 instanceof的作用和区别?

  • typeof检测一个变量的类型,返回的是变量的类型。
  • instanceof某个变量是否是某个对象的实例,返回布尔值。

代码

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

function isNumber(el){
  return typeof(el) === "number";
}
function isString(el){
  return typeof(el) === "string";
}
function isBoolean(el){
  return typeof(el) === "boolean";
}
function isFunction(el){
  return typeof(el) === "function"
}
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

以下代码的输出结果是?

console.log(1 + 1);    //2
console.log("2"+"4");  //24
console.log(2+"4");    //24
console.log(+new Date()); //1468288803278
console.log(+"4");  //+4 只有右侧有数字或者字符串,且在  字符串为十进制数时,返回(+/-)+数字

以下代码的输出结果是?

var a = 1;
a+++a; //3  相当于(a++)+a  先自增,在加上a。
typeof a+2; //number2   typeof的优先级高于加法运算,所以先typeof a,在加法运算。

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

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

遍历 JSON, 打印里面的值

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

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

console.log(a);  // undefined   运行过程中,变量提升,var a;会在程序一开始就运行,但不会赋值。
var a = 1;
console.log(a);  //1
console.log(b);  //ReferenceError: b is not defined
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JavaScript基本概念、基础数据类型、运算符、流程控制语句。 一、CSS和JS在网页中的放置顺序是怎样的? ...
    婷楼沐熙阅读 448评论 0 2
  • 1.CSS和JS在网页中的放置顺序是怎样的? css一般放在头部head标签中,网页渲染时,先解析html标签,生...
    _Josh阅读 361评论 0 1
  • 问答 1.CSS和JS在网页中的放置顺序是怎样的? 一般把css放在 标签内, 标签的后面;js放在 标签的尾部。...
    墨月千楼阅读 666评论 0 0
  • 1. CSS和JS在网页中的放置顺序是怎样的? 理论上来说,CSS和JS的放置位置并没有严格要求,不过因为浏览器的...
    进击的阿群阅读 460评论 0 2
  • 学习内容:JavaScript基本概念,基础数据类型,运算符,流程控制语句 一、CSS和JS在网页中的放置顺序是怎...
    鸿鹄飞天阅读 519评论 0 0