js 小知识点

空字符串,0,NaN,null,undefined —转换为false

几乎每一个值都有toString()方法(除了null和undefinded 类和值都是它本身)

String()有些值没有toString时候用此方法

parseInt()和parseFloat()都是把字符串转
Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN

break
立即退出循环
continue
立即退出当前循环,但退出循环后会从循环的顶部继续执行。

function getMin(array){
array = array || []; //传入的是数组 值就为数组否则为空数组
}

javascript中的函数比较奇葩
1.如果函数没有显示的使用return 语句,那么函数有默认的返回值:undefined
2.如果函数使用return语句,那么跟再return后面的值,就成了函数的返回值。
3.如果函数使用return语句,但是return后面没有任何值,那么函数的返回值也是undefined
4.函数使用return语句后,这个函数回在执行完return语句之后停止并立即退出,也就是说return后面的所有其他代码不会再执行。
5.推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值。
function getSum(a,b,c){
a = a||0;
b = b||0;
c = b||0;//判断是不是number
}

//在其他语言中,有重载的概念。
//重载:函数的名字相同,但是参数个数不同。
//javaScript中没有重载的概念。
//下面相同名称的函数会把上面的函数覆盖。
//1.函数声明
function FNAME(A,B){
RETURN A+B;
}
//2. 函数表达式
var fnName = function(a,b){
return a+b;
} Uncaught TypeError:fnName is not a function
console.log(fnName(1,3));

不适用var声明全局变量
javaScript中没有块级作用域
(function(){
console.log(“tesat”);
})(); //自调用执行 只能执行一次。避免变量的冲突。

注意:
使用var创建的全局变量不能删除。
不使用var创建的隐含全局变量可以使用delete删除(因为它并不是真正的变量,而是全局对象
window的属性)。
function test() {
var a = b = 0;
delete a;
delete b;
console.log(a); // 0
console.log(b); // ReferenceError: b is not defined
}
test();

在上面的代码中,由于从右至左的操作符优先级,所以表达式“b=0”是先执行的,而此时b未经过声
明,所以它会成为全局变量。

console.log(a); // undefined
var a = 1;
function test(){
console.log(a); // undefined
var a = 2;
}
test();

结果是不是有点出乎你的意料。
其实JavaScript的执行环境分为声明阶段和执行阶段,因此对于上面的代码,JavaScript会这样解释代
语法:
var a;
console.log(a); // undefined
a = 1;
function test(){
var a;
console.log(a); // undefined
a = 2;
}
test();

var num1 = 5;
var num2 = num1;
num2 += 5;
console.log(num1); //5
console.log(num2); // 10
从上面例子的结果,我们知道num1中的5和num2中的5是完全独立的,num2中的5只是num1中的5的一
个副本

猜你喜欢

转载自blog.csdn.net/qq_30443907/article/details/81317302