js经典代码题库(基础题库)

Posted 老张在线敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js经典代码题库(基础题库)相关的知识,希望对你有一定的参考价值。

运算符系列

第一题逗号运算符

let a = (1 + 2, 3 + 4);

alert( a ); // 7

原因:逗号运算符能让我们处理多个语句,使用 , 将它们分开。每个语句都运行了,但是只有最后的语句的结果会被返回。

第二题+= / -=运算符的优先级与普通赋值运算符的优先级?

let n = 2;

n *= 3 + 5;

alert( n ); // 16 (右边部分先被计算,等同于 n *= 8

+= / -= / *=运算符的优先级与普通赋值运算符的优先级相同,所以它们在大多数其他运算之后执行

第三题前置运算符跟后置的区别

let a = 1, b = 1;

alert( ++a ); // 2,前置运算符返回最新值
alert( b++ ); // 1,后置运算符返回旧值

alert( a ); // 2,自增一次
alert( b ); // 2,自增一次

第四题或运算符 || 或

//实例1:
alert( undefined || null || 0 ); // 0(都是假值,返回最后一个值)
//实例2:
let firstName = "";
let lastName = "";
let nickName = "SuperCoder";//这里如果也是空字符串,结果则打印Anonymous

alert( firstName || lastName || nickName || "Anonymous"); // 因为nickName有值SuperCoder所以不往下继续找

||或从左到右依次计算操作数。 处理每一个操作数时,都将其转化为布尔值。如果结果是 true,就停止计算,返回这个操作数的初始值。
如果所有的操作数都被计算过(也就是,转换结果都是 false),则返回最后一个操作数。

&&与

alert( null || 2 && 3 || 4 );//3

&&与运算返回找到的第一个假值,如果没有假值就返回最后一个值。且&&比||优先级高先执行&&

类型转换与比较

第一题

"" + 1 + 0 = "10" // (1)
"" - 1 + 0 = -1 // (2)
true + false = 1
6 / "3" = 2
"2" * "3" = 6
4 + 5 + "px" = "9px"
"$" + 4 + 5 = "$45"
"4" - 2 = 2
"4px" - 2 = NaN
7 / 0 = Infinity
"  -9  " + 5 = "  -9  5" // (3)
"  -9  " - 5 = -14 // (4)
null + 1 = 1 // (5)
undefined + 1 = NaN // (6)
" \\t \\n" - 2 = -2 // (7)

有字符串的加法 “” + 1,首先会将数字 1 转换为一个字符串:"" + 1 = “1”,然后我们得到 “1” +
0,再次应用同样的规则得到最终的结果。
减法 -(像大多数数学运算一样)只能用于数字,它会使空字符串 “” 转换为 0。
带字符串的加法会将数字 5 加到字符串之后。 减法始终将字符串转换为数字,因此它会使 " -9 " 转换为数字-9(忽略了字符串首尾的空格)。
null 经过数字转换之后会变为 0。
undefined 经过数字转换之后会变为 NaN。
字符串转换为数字时,会忽略字符串的首尾处的空格字符。在这里,整个字符串由空格字符组成,包括 \\t、\\n以及它们之间的“常规”空格。因此,类似于空字符串,所以会变为 0。

第二题如何让他输出结果为3

let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);

alert(a + b); // 12
let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);

alert(+a + +b); // 3

//或者使用Number()转为数字
let a = Number(prompt("Second number?", 1));
let b = Number(prompt("Second number?", 2));

alert(a + b); // 3

第三题类比较

5 > 4true
"apple" > "pineapple"false
"2" > "12"true
undefined == null → true
undefined === null → false
null == "\\n0\\n"false
null === +"\\n0\\n"false

数字间比较大小,显然得 true。
按词典顺序比较,得 false。“a” 比 “p” 小。
与第 2 题同理,首位字符 “2” 大于"1"。
null 只与 undefined 互等。
严格相等模式下,类型不同得 false。
与第 4 题同理,null 只与undefined 相等。
不同类型严格不相等。

以上是关于js经典代码题库(基础题库)的主要内容,如果未能解决你的问题,请参考以下文章

c语言编程题

java基础测试题

Apsara Clouder基础技能认证:阿里巴巴编码规范 考试备考题库

Java题库(每日20练打好Java基础)

给个可以在线提交做acm题库的网站?

谁给我提供一套C语言编程题库