好的。然则,既然 3 是0毫秒延迟之后输出的,那么是否意味着它是急速输出的呢?如不雅是的话,那么它是不是应当在 4 之前输出,既然 4 是在第二行输出的?
浏览器有一个事宜轮回,会检查事宜队列和处理未完成的事宜。例如,如不雅时光产生在后台(例如,脚本的>
例如:
- console.log(isPalindrome("level")); // logs 'true'
- console.log(isPalindrome("levels")); // logs 'false'
- console.log(isPalindrome("A car, a man, a maraca")); // logs 'true'
12.写一个 sum办法,在应用下面任一语法调用时,都可以正常工作。
- console.log(sum(2,3)); // Outputs 5 console.log(sum(2)(3)); // Outputs 5
(至少)有两种办法可以做到:
办法1
- function sum(x) {
- if (arguments.length == 2) {
- return arguments[0] + arguments[1];
- }
- else
- {
- return function(y) { return x + y; };
- }
- }
在JavaScript中,函数可以供给到 arguments 对象的拜访,arguments 对象供给传递到函数的实际参数的拜访。这使我们可以或许应用 length 属性来肯定在运行时传递给函数的参数数量。
如不雅传递两个参数,那么只需加在一路,并返回。
不然,我们假设它被以 sum(2)(3)如许的情势调用,所以我们返回一个匿名函数,这个匿名函数归并了传递到 sum()的参数和传递给匿名函数的参数。
办法2
- function sum(x, y) {
- if (y !== undefined) {
- return x + y;
- }
- else
- {
- return function(y) { return x + y; };
- }
- }
13.请看下面的代码片段:

网友点评
精彩导读
科技快报
品牌展示