美文网首页前端面试
前端常见面试题十六

前端常见面试题十六

作者: jw_fc89 | 来源:发表于2019-07-19 08:14 被阅读41次

目录:
1、列举三种强制类型转换和两种隐式类型转换
2、JavaScript typeof返回哪些数据类型
3、window.onload 和document.ready的区别
4、== 和 ===的区别
5、style标签写在body前和body后有什么区别


1、列举三种强制类型转换和两种隐式类型转换

强制

1、Number(参数)把任何类型转换成数值类型

2、parseInt(参数1,参数2)将字符串转换成整数

3、parseFloat()将字符串转换成浮点数字

4、string(参数):可以将任何类型转换成字符串

5、Boolean()可以将任何类型的值转换成布尔值


隐式类型转换

(1)、四则运算
加法运算符+是双目运算符,只要其中一个是string类型,表达式的值便是一个String。对于其他的四则运算,只有其中一个是Number类型,表达式的便是一个Number。对于非法字符的情况通常会返回NaN:'1''a' // => NaN,这是因为parseInt(a)值为NaN,1NaN还是NaN

(2)、判断语句

判断语句中的判断条件需要是 Boolean类型,所以条件表达式会被隐式转换为Boolean。其转换规则则同Boolean的构造函数。比如:

var obj = {};if(obj){
       while(obj);
}

(3).Native代码调用
    JavaScript宿主环境都会提供大量的对象,它们往往不少通过JavaScript来实现的。JavaScript给这些函数传入的参数也会进行隐式转换。例如BOM提供的alert方法接受String类型的参数:alert({a:1}); //=>[object Object]


2、JavaScript typeof返回哪些数据类型

undefined string boolean number symbol(ES6) Object Function

3、window.onload 和document.ready的区别

$(document).ready和window.onload都是在都是在页面加载完执行的函数,大多数情况下差别不大,但也是有区别的。

$(document).ready:是DOM结构绘制完毕后就执行,不必等到加载完毕。 意思就是DOM树加载完毕,就执行,不必等到页面中图片或其他外部文件都加载完毕。并且可以写多个.ready。

window.onload:是页面所有元素都加载完毕,包括图片等所有元素。只能执行一次。

所以,$(document).ready的执行时间要早于window.onload。并且可以写多个

//以下代码无法正确执行: 
window.onload = function()
{ 
alert(“text1”); 
}; 
window.onload = function()
{ 
alert(“text2”); 
}; 
//结果只输出第二个 能同时编写多个 
//以下代码正确执行: 
$(document).ready(function()
{ 
alert(“Hello World”); 
}); 
$(document).ready(function()
{ 
alert(“Hello again”); 
}); 
//结果两次都输出

4、== 和 ===的区别

== 代表是equality 等同,=== 代表是identity 恒等
==, 两边值类型不同的时候,要先进行类型转换,再比较。
===,不做类型转换,类型不同的一定不等。
最后 :==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。


5、style标签写在body前和body后有什么区别

写在body前

写在head标签中利于浏览器逐步渲染

写在body后

写在body标签后由于浏览器以逐行方式对html文档进行解析,当解析到写在尾部的样式表(外联或写在style标签)会导致浏览器停止之前的渲染,等待加载且解析样式表完成之后重新渲染,在windows的IE下可能会出现FOUC现象(即样式失效导致的页面闪烁问题)

相关文章

网友评论

    本文标题:前端常见面试题十六

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