js基础知识点,深浅拷贝,

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在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20190528154502505.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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值