A27-张韶中-前端第六次

比较运算符:
           “==”————————   比较值
                1==“1” true
            “===”————————比较值与类型
                1==='1' false

数组:(在这个里面可随意扩容)
            数组的定义
            1.隐式定义
                var数组名=[];//空数组
                var数组名=[值1,值2,值3.。。];

// 隐式定义
		var arr1 = [];
		console.log(arr1);
		var arr2 = [1,2,'a',true];//(建议同类型)
		console.log(arr2);

                2.直接实例化
                   var数组名=new Array();
                   var数组名=new Array(值1,值2,值3...);

//直接实例化
		var arr3 = new Array(1,2,3);
		console.log(arr3);

3.定义数组并设置长度
                var 数组名=new Array(size);

//定义数组并设置长度
		var arr4 = new Array(5);
		console.log(arr4);


            数组的操作:
                数组的下标从0开始,不会出现下标越界
                获取数组的值,如果下标不存在,则undefined:
                    数组名[下标]

// 获取指定下标的值
		console.log(arr2[1]);
//设置如果下标不存在
		console.log(arr2[10]);//undefined


                设置数组的值:如果下标不存在,则自动扩容
                    数组名[下标] = 值;

// 设置指定下标的值
		arr2[1] = 20;
		console.log(arr2[1]);
		// 如果下标不存在
		arr2[10] = 100;
		console.log(arr2);//这里体现了自动扩容


                获取数组的长度
                    数组名.length;

//获取数组的长度
		console.log(arr3.length);//3


                设置数组的长度
                    数组名.length = 值;

// 设置数组的长度
		arr3.length = 5;
		console.log(arr3);


                了解:
                    如果设置非整数型的下标,则会成为数组的属性,不计入数组的长度
                    设置属性:
                        数组名.属性名 = 值;
                        数组名称['属性名'] = 值;

// 设置数组的属性(不占长度)
		arr3[name] = 'zhangsan';//使用arr3.name会显示name  使用arr3[name]会显示“ ”
		console.log(arr3);
		arr3['pwd'] = '123456';
		console.log(arr3);


                    获取属性:
                        数组名.属性名;
                        数组名['属性名'];

// 获取数组的属性
		console.log(arr3[name]);//必须与设置name时的格式相同,否则会显示undefined


            数组的遍历
                1.for循环遍历    不遍历属性
                    for(var index = 0;index<数组长度; index++){
                        
                    }

// 数组的遍历
		console.log(arr3);


                2.for...in循环  不遍历索引中的undefined
                    for(var下标名 下标名 in数组){
                        
                    }

// for循环遍历
		console.log('---for---');
		for(var i = 0; i<arr3.length; i++){//注意有length
			console.log('下标'+i+',值:'+arr3[i]);//体现了属性可以使数组的length增加,但不会被遍历的特性
		}


                3.forEach循环   不遍历属性和索引中的undefined
                    数组.forEach(function(element,index)){
                        //element:元素
                        //index:下标
                    }

// forEach 针对数组的
		console.log('---forEach---');
		arr3.forEach(function(element,index){
			console.log('下标'+index+',值:'+element);
		})


            数组提供的方法
                push     添加元素到最后
                indexOf 数组元素索引
                join     数组转换成字符串
                split     字符串方法,将字符串转换成数组
                以上为常用
                unshift 添加元素到最前
                pop     删除最后一项
                shift     删除第一项
                reverse 数组翻转
                slice     截取(切片)数组,原数组不发生变化
                splice  剪切数组,原数组变化,可以实现前后删除效果
                concat  数组合并
                

// 数组提供的方法
		var arr5 = ['a','b','c'];
		//push 	添加元素到最后
		arr5[arr5.length] = 'd'
		arr5.push('e');
		console.log(arr5);
		//indexOf 数组元素索引
		console.log(arr5.indexOf('a'));
		console.log(arr5.indexOf('t'));//找不到返回-1
		//join 	数组转换成字符串
		console.log(arr5.join(','));
		console.log(arr5.join('-'));
		//split 	字符串方法,将字符串转换成数组
		var str = '1,2,3,4,5';
		console.log(str.split(','));
		console.log(str.split('-'));

函数的定义
        1.函数声明语句
            function 函数名([参数列表]){
                
            }

// 函数的定义
		// 函数声明语句
		function fn01(a,b){
			console.log(a+b);
		}
		console.log(fn01);


        2.函数定义表达式
            var变量名/函数名 = function([参数列表]){
                
            }

// 函数定义表达式
		var fn02 = function(a,b){
			cconsole.log(a+b);
		}
		console.log(fn02);


        3.Function构造函数
            var 函数 = new Function([参数列表],返回值);

// Function构造函数
		var fn03 = new Function('a','b','return (a+b);');
		console.log(fn03);
		// 相当于
		function fn04(a,b){
			return a+b;
		}


        函数的参数
            定义函数时设置形参,调用函数时传递实参。
            1.实参可以省略,则形参为undefined

// 未设置实参
		test01();//	NaN
		test01(1);//NaN
		test01(1,2);//3


            2.如果形参名同名,则以最后一个为准

//2.如果形参名同名,则以最后一个为准
		function test02(x,x){
			console.log(x);
		}
		test02(1,2);//2


            3.可以设置参数的默认值。

//3.可以设置参数的默认值
		function test03(x){
			//如果形参x有值,则值为x传递的值,否则值为‘x’
			x=x||'x'
			console.log(x);	
		}
		test03(10);//10
		test03();//x
		function test04(x){
			(x !=null && x!=undefined) ? x = x:x = 'x';//三步运算符
			console.log(x);
		}
		test04();//x
		test04('hello');//hello


            4.参数为值传递,传递副本;参数是引用传递,则传递的是地址,操作的是同一对象
        函数调用

var num = 10;//值传递,不影响num的初始值
		function test05(num){
			num=5
		}
		test05(num);//实参是定义的变量
		console.log(num);
		//引用传递
		var obj = {name:'张三'};
		console.log(obj);
		function test06(o){
			o.name = 'lisi';
		}
		test06(obj);
		console.log(obj);


            1.常用调用方式
                函数名([参数列表]);

// 常用调用模式
		function f1(){
			console.log('常用调用模式')
		}
		f1();


            2.函数调用模式
                var 变量名 = 函数名([参数列表]);

// 函数调用模式
		var f2 = function(a){
			console.log('函数调用模式')
			return a;
		}
		var num1 = f2(1);
		console.log(num1);


            3.方法调用模式
                对象.函数名([参数列表]);

//方法调用模式
		//定义对象 key键: 字符串   value值:任意数据类型
		var obj = {
			name:'zhangsan',//字符串
			age:18,//数值
			sex:true,//布尔
			cats:['大毛','二毛'],//数组
			dog:{//对象
				name:'张二狗',
				age:1,
			},
			sayHello:function(){//函数
				console.log('你好啊');
			}
		}
		console.log(obj);
		console.log(obj.sayHello);
		console.log(obj.sayHello());//对象调用函数,加括号表示调用,在控制台打印时,函数无返回值会显示undefined
		obj.sayHello();//对象调用函数
		console.log('==========');


        函数的返回值
            return
            1.在没有返回值的方法中,用来结束方法。(如果方法没有返回值,使用return,返回的是undefined)

//函数的返回值
		function a1(){
			console.log('没有返回值');
			return;//表示方法结束
			console.log('............')
		}
		console.log(a1());


            2.有返回值的方法中,一个是用来结束方法,一个用来用来将值带给调用者。
        函数的作用域

console.log(a1());
		function a2(){
			console.log('有返回值');
			return 'test';//返回之后方法结束
		}


            在js中,只有在函数中才有作用域
            1、函数中.存在局部变量和全局变量
            2.在函数中,如果声明变量时,未使用var修饰符,则为全局变量

//函数的作用域
		var pp ='hello';//全局变量
		//函数中定义的变量是局部变量
		function qq(){
			//局部变量
			var box = 10;
			//全局变量
			box2 = 20;
		}//调用方法,执行方法中的代码
		qq();
		console.log(pp);
		// console.log(box);box是局部变量,无法打印
		console.log(box2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值