Web前端面试题及答案--JavaScript
2017-08-20 16:46
519 查看
Web前端面试题及答案–JavaScript篇
随着互联网行业蓬勃兴起,Web前端开发已经成为互联网行业必不可缺的一个岗位,进入公司从事Web前端开发前首先要通过面试这道“难关”,这篇博文便会和大家共同分享一些曾出现过的面试题。写出程序运行结果
for(i=0, j=0; i<10, j<6; i++, j++){ k = i + j; } console.log(k); //10
for循环中条件语句参考 ; 前紧挨的条件。
写出运算结果
alert('5'+3); //53 console.log(typeof('5'+3)) //string alert('5'+'3'); //53 console.log(typeof('5'+'3')); //string alert('5'-3); //2 console.log(typeof('5'- 3)); //number alert('5'-'3'); //2 console.log(typeof('5'-'3')); //number alert('5a'-'3'); //NaN console.log(typeof('5a' - '3')); //number
运算中包含字符串时,+ 表示拼接符、- 表示运算符;
字符串由数字和字母组成时,运算结果为NaN。
精度问题
var n = 0.4, m = 0.3, i = 0.2, j = 0.1; alert((n - m) == (i - j)); //false alert((n - m) == 0.1); //false alert((i - j) == 0.1); //true
JS 精度不能精确到 0.1。
判断结果(精度问题)
alert(0.4*0.2 == 0.08); //false
0.4 * 0.2 值为 0.08000000000000002,大于 0.08
检测变量类型
function checkStr1(str){ return str ='string'; } console.log(checkStr1('string')); //string function checkStr2(str){ return str =='string'; } console.log(checkStr2('string')); //true function checkStr3(str){ return str ==='string'; } console.log(checkStr3('string')); //true
= 赋值;
== 用于比较两者是否相等,比较值相等,在比较的时候可以自动转换数据类型;
=== 用于比较两者是否完全相等,比较值和类型都相等,在比较时不会进行数据类型转换。
检测 | 的作用
console.log( 8 | 1 ); //9
| 将数字运算转换成二进制并相加: 1000 + 1 = 1001
再将二进制转换成数字:1001 = 9
双向非测试
var bool = !!2; alert(bool); //true
双向非操作可以把字符串和数字转换为布尔值。
运算测试
var a; var b = a * 0; var c; if (b == b) { //不成立,执行else中的语句 console.log(b * 2 + "2" - 0 + 4); } else { console.log(!b * 2 + "2" - 0 + 4); //26 }
此处运算有些绕,需要一步一步理解:
b是NaN,因为: 字母*数字 得到NaN;
!b得到的是true;
!b*2得到2;
!b*2 + “2”得到22,+ 作用为数字与字符拼接符;
!b*2 + “2” - 0得到22,- 作用为数字与数字运算符 ;
!b * 2 + “2” - 0 + 4即22 + 4 得26;
运算测试
<script> var a = 1; </script> <script> var a; var b = a * 0; if (b == b) { console.log(b * 2 + "2" - 0 + 4); //6 } else { console.log(!b * 2 + "2" - 0 + 4); }
不要把注意力只关注在console.log,别忽视了前面给出的条件:var a = 1; 结果为 6。
++测试
var a = 10, b = 20, c = 4; console.log( ++a+b+c++ ); //35
a1b0
题中++a 得到自增值 11;
题中c++ 得到原值 4;
++在左先自增再赋值,++在右先赋值再自增。
下列JavaScript代码执行后,iNum的值是多少?
var iNum = 0; for(var i = 1; i< 10; i++){ if(i % 5 == 0){ continue; } iNum++; } console.log(iNum); //8
for循环表示:i值为1~9,if判断表示:i≠5,所以iNum 得 8 。
在参加面试前,我们要做很多面试题,如果面试时面试题有了改动,那么背题、记答案得到的结果肯定是错的;理解做题既能增强自己的面试技巧,又能重温知识点,所以,面试题要理解着做。
相关文章推荐
- Web前端开发精品课HTML CSS JavaScript基础教程第十三章课后编程题答案
- 前端周报:前端面试题及答案总结;JavaScript参数传递的深入理解
- 转:web前端面试题合集 (Javascript相关)(js异步加载详解)
- 收集Web前端 面试题 Javascript部分
- web前端面试题(HTML&CSS)下 答案详解
- web前端面试题及答案
- Web前端开发面试题整理(HTML+CSS+JavaScript)
- 阿里巴巴Web前端开发面试题赋答案
- web前端面试题及答案 JavaScript篇
- web前端面试题JavaScript第一弹,个人整理部分面试题汇总
- Web前端开发精品课HTML CSS JavaScript基础教程第四章课后编程题答案
- 一套名企WEB前端面试题,不提供答案
- Web前端开发精品课HTML CSS JavaScript基础教程第九章课后编程题答案
- 自己总结web前端面试题之javascript
- Web前端开发精品课HTML CSS JavaScript基础教程第二十三章课后编程题答案
- Web前端开发精品课HTML CSS JavaScript基础教程第六章课后编程题答案
- Web前端开发面试题赋答案
- web前端面试题及答案 css篇
- 2016最全的web前端面试题及答案整理
- web前端面试题(HTML&CSS)上 答案详解