1.下面两个函数的返回值是一样的吗?为什么?
function foo1()
{
return {
bar: "hello"
};
}
function foo2()
{
return
{
bar: "hello"
};
}
在编程语言中,基本都是使用分号(;)将语句分隔开,这可以增加代码的可读性和整洁性。而在JS中,如若语句各占独立一行,通常可以省略语句间的分号(;),JS 解析器会根据能否正常编译来决定是否自动填充分号:
var test = 1 + 2;
console.log(test);
在上述情况下,为了正确解析代码,就不会自动填充分号了,但是对于 return 、break、continue 等语句,如果后面紧跟换行,解析器一定会自动在后面填充分号(;),所以上面的第二个函数就变成了这样:
function foo2()
{
return;
{
bar: "hello"
};
}
所以第二个函数是返回 undefined。
转载:https://blog.csdn.net/zztfreedom/article/details/78405596
2.javascript中数字全部用浮点精度处理。在ECMAScript规范中,整数只在概念上存在,即数值始终作为浮点数存储。
console.log(0.1+0.2);
可能会输出:0.30000000000000004
25==25.0//true
3.js不会主动为你判断你到底给函数传了多少个参数,如果你多传了,多余的部分就没有被使用,如果你少传了,那么没传的参数值就是undefined。
arguments
对象不是一个 Array
。它类似于Array
,但除了length属性和索引元素之外没有任何Array
属性.
4.Js apply 方法 详解
转自:https://blog.csdn.net/myhahaxiao/article/details/6952321
5.高阶函数--匿名函数
function sum(x){
if(x.length==2){
return x[0]+x[1];
}
else{
return function(y){
return x+y;
}
}
}
sum(2)(3)//5;
6.let
语句声明一个块级作用域的本地变量,并且可选的将其初始化为一个值
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/let
7.调用对象的reverse()方法不仅以相反的顺序返回数组arr2,它还颠倒了原来数组arr1本身的顺序,而且arr2是对arr1的引用,因此对arr2做的任何操作,arr1都会受到影响,反之亦然。
8.和(&&)运算符。在X&&Y形式的表达式中,首先评估X并将其解释为布尔值。如果此布尔值为false,则返回false(0)并且不评估Y,因为”and“条件已失败。但是,如果这个布尔值为“真”,我们仍不知道X&&Y是真是假,直到我们评估Y,并将其解释为布尔值。
然而,&&运算符有趣之处在于,当表达式评估为‘真’时,则返回表达式本身。
1&&2//2,
"aa"&&"bb"//''bb'
9.fun.bind(thisArg[, arg1[, arg2[, ...]]])绑定函数,指定this对象。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
10.Array.prototype.slice.call()方法的理解, [].prototype.slice.call()
Array.prototype.slice.call(arguments)能将具有length属性的对象(key值为数字)转成数组。[]是Array的示例,所以可以直接使用[].prototype.slice()方法
https://segmentfault.com/a/1190000008940666
11.var语句被挂起(没有它们的值初始化)到它所属的全局或函数作用域顶部。(即 var x=19;中:var x语句会被挂起到顶部,19值初始化并不会)。
12 (width,height,left,top)scroll**,client**,offset**
div.scroll**,其实是表示div里面的内容(padding以内)实际宽高,和相对div的外边界的left、top
div.client** 表示div里面的内容(padding以内)可见宽高,和相对div外边界的left、top
div.offset**表示div相对父元素(内边界)的宽高,left、top
13 jquery index方法
第一个匹配元素的 index,相对于同胞元素
获得第一个匹配元素相对于其同胞元素的 index 位置。//同胞元素具有相同的父元素
$(selector).index()
14 Position()方法
获取匹配元素中第一个元素的当前坐标,相对于离该元素最近且被定位过的父元素,
position(coordinate)