1. 布尔值中:undefined、null、NaN、“ ”(无内容字符串)、0、false显示出false。
2.&&与运算符中,由左至右判断,当为假时直接输出第一个值,为真时判断下一个,全真才为真。( || 全假才为假)
var a = 0 && 2;
document.write(a); 输出显示为 :0
var a = 1 && 2 && 4;
document.write(a); 输出显示为 :4
var a = 1 || 0 || 4;
document.write(a); 输出显示为 :1
var a = 0 || NaN || 4;
document.write(a); 输出显示为 :4
3.语句
if条件语句:括号里为true则执行否则不执行( var score = parseInt(window.prompt(‘input’)))用户自己输入score的值
var score = parseInt(window.prompt('input'));
if(score >= 85 && score < 100){
document.write('优秀');
}else if(score >= 60 && score < 85){
document.write('及格');
}else if(score >= 0 && score < 60){
document.write('不及格');
}else{
document.write('error');
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190528154429121.png
循环语句
- for循环语句
for(var i = 0; i < 10; i++){
document.write('a');
}
执行顺序:1.var i = 0
2.判断i < 10
3.i++
- while循环语句
var i = 0
while(i < 10){
document.write(i);
i++;
}
//for(;i < 10; i++)
never-ending loop 死循环
var i = 0
while(1){
document.write('i');
i ++;
}
数值以浮点型存入:实现3位数的逆序输出
var n = parseInt(window.prompt('input'));
n = ( n % 10 ) * 100 + ( n % 100 - n % 10 ) + ( n / 100 - n % 100 /100);
document.write(n);
100以内的质数
var count = 0;
for(var i = 1; i < 100; i ++){
// 看看每一个i是否为质数
for(var j = 1; j <= i; j ++){
if(i % j == 0){ //判断是否整除
count ++;
}
}
if(count == 2){
document.write(i + " ");
}
count = 0;
}
break:跳出循环,continue:终止本次循环进行下次循环。
深浅拷贝
浅拷贝和深拷贝都是对于JS中的引用类型而言的,浅拷贝就只是复制对象的引用,如果拷贝后的对象发生变化,原对象也会发生变化。只有深拷贝才是真正地对对象的拷贝
浅拷贝:浅拷贝的意思就是只复制引用,而未复制真正的值。
var a = [1,2,3,4,5];
var b = {a,b,[1,2,3],dd};
var aa = a;
var bb = b;
console.log(aa); // [1,2,3,4,5]
console.log(bb); // {a,b,Array[3],dd}
aa.push(6);
console.log(aa); // [1,2,3,4,5,6]
console.log(a); // [1,2,3,4,5,6]
深拷贝
深拷贝就是对目标的完全拷贝,不像浅拷贝那样只是复制了一层引用,就连值也都复制了。
只要进行了深拷贝,它们老死不相往来,谁也不会影响谁。
- 利用递归来实现每一层都重新创建对象并赋值
function deepClone(a) {
//判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝,对象的话进行对象拷贝
var aClone = Array.isArray(obj) ? [] : {};
//进行深拷贝的不能为空,并且是对象或者是
if (a && typeof a === "object") {
for (key in a) {
if (a.hasOwnProperty(key)) {
if (a[key] && typeof a[key] === "object") {
aClone[key] = deepClone(a[key]);
} else {
aClone[key] = a[key];
}
}
}
}
return aClone;
}