js基础知识回顾3

此文章的目的是让本人更加认真的回顾一下基础知识

三元运算符

  var score = Math.round(Math.random() * 100);
  var tip  = (score>60) ? score+"及格" : score+"不及格";

?前面为条件,若成立,结果为:前面的.反之,结果为:后面的

break和continue
break 执行了该语句以后 整个循环就直接终止了 终止的时候变量是多少 就是多少 不会持续循环结束
continue 执行了该语句以后 当次循环没有执行的部分直接跳过 立马开始下一次循环 可以用if来实现同样的功能

isNaN 判断里面的内容是否为非数字
isNaN(“a”);true isNaN(1);false

js的组成:
ecmascript(语法)+BOM(浏览器对象模型)+DOM(文档对象模型)

undefined和报错
报错:直接使用一个没有声明的变量
undefined:
声明了没有赋值
形参没有接收到实参
函数没有返回值
对象没有某个属性

在这里插入图片描述
数组,引用对象(对象):
声明:var scoreList = [100, 10, 80, 100, 99, 20];
值类型:string number boolean
数组的长度用length来获取 是一个数字
里面的内容取值 要通过下标(索引)
取第一个元素 scoreList[0]; 取值 不影响原数组
数组的修改 通过下标 找到位置 重新赋值,如scoreList[0]=91

   var scoreList = [100, 10, 80, 100, 99, 20];
    for (var i = 0, sum = 0; i < scoreList.length; i++) {
        sum += scoreList[i];
    }
    document.write("数组的和为:" + sum);
    //求和
    var avg = sum / scoreList.length;
    //求平均值
    document.write("数组的平均数为:" + avg);
    //求比平均值大的数
    for(var  i=0;i<scoreList.length;i++){
        var  score = scoreList[i];
        if(score>avg){
            document.write("比平均数还大的数为:"+score+"<br/>");
        }
    }
//10到20放到数组中
var scoreList = [];//集合的声明  空的数组 长度为0  
for (var i = 10; i <= 20; i++) {
    scoreList[scoreList.length] = i;
}
alert(scoreList);

数组的取值:

var list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
//随机的取一个值 取值要使用下标 随机的下标 随机有范围0到list.length-1
var randIndex = Math.round(Math.random()*(list.length-1));
//下标出来了 值也就出来了
var randNum = list[randIndex];
alert(randNum);

数组的扩展方法:

var list = [1, 2, 3, 4, 5];
list.push(6);     //向数组末尾添加一个数
alert(list);
list.unshift(0);   //向数组开头添加一个数
alert(list);
list.splice(1,0,'a','b'); //第一个值表示在数组的第几个位置上做操作,第二个是删除元素的个数,若想添加元素,则使其值为0,然后后头加上想要添加的数组的值
alert(list);


 var list = [1, 2, 3, 4, 5];
 list.pop();	 //向数组末尾删除一个数
 alert(list);
 list.shift();	 //向数组开头删除一个数
 alert(list);
 list.splice(1,2)	//第一个值表示在数组的第几个位置上做操作,第二个是删除元素的个数,若想添加元素,则使其值为0,然后后头加上想要添加的数组的值
 alert(list);


var list = [1, 2, 3, 4, 5];
 var index = list.indexOf(3);       //判断要查询的数是否存在,若存在,显示该数的下标,如果不存在,显示-1 
 alert(index);
 var index1=list.indexOf(10);
 alert(index1);
 var flag1=list.includes(3);   //判断要查询的数是否存在,若存在,为true,不存在显示false 
 alert(flag1);
 var flag2=list.includes("10");
 alert(flag2);

var list = [1, 2, 3, 4, 5,3];
 var str=list.join("-")	使数组中的元素用join()内的连接符连接起来
 alert(str);
list.reverse();	使数组中的元素按照原本的倒序排列
alert(list);

var list = [1, 2, 3, 4, 5,3];
var  arr  = [6,7,8];
var nrw=list.concat(arr);   //两个数组进行拼接
alert(nrw);

数组声明的两种方式
方法一:var list=[1,2,3,4];
方法二:

            var arr=new Array(1,2,3,4);
    		var flag=(list==arr);   
   			 document.write(flag);   

结果为 false,对象没有比较的必要 没有哪两个对象是相等的 因为分的地址不一样

var flag1=(list[0]==list[0]);
document.write("<br>"+flag1);   //true,因为==是判断数值的大小是否相等
var flag2=(list[0]===list[0]);
document.write("<br>"+flag2);   //true,因为===是判断数值的大小和数据类型是否相等,数据类型都为number数据类型,所以相等

在var arr=new Array()中容易遇到的问题
var list=[4];
var arr=new Array(4); //当只有一个数字时, 表示长度
document.write(list.length+’ '+arr.length); // 1 4

数据类型的检测
instanceof 或Array.isArray()

    var btn=document.getElementById("btn");
    var list=[4];
    var flag1=btn instanceof Array;
    var flag2=list instanceof Array;
    var flag3=Array.isArray(btn);
    var flag4=Array.isArray(list);
    document.write(flag1+"<br>"); 	//false
    document.write(flag2+"<br>");	//true	
    document.write(flag3+"<br>");	//false
    document.write(flag4)			//true

数组的分配问题

   var list=[1,2,3,4];
    var arr=list;
    arr.push(5);
    document.write(list+"<br>")      //1,2,3,4,5
    document.write(arr+"<br>")       //1,2,3,4,5

给arr的数组添加值,而使list数组的值也改变的原因是 var arr=list;使list和arr指向同一个地址,当arr的改变使地址中的值发生改变时,相应的指向该地址的list的值也相应改变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值