JavaScript函数(二)

一、"闭包"函数

1、是一个函数,可以访问另一个函数中的局部变量。

2、作用: (1)可以在函数的外部访问函数内部的变量

                  (2)可以让变量的值始终保存在内存中

注意:滥用'闭包'对程序的执行效率会产生很大的影响 

3、创建:在一个函数的内部创建另外一个函数。另外一个函数可以访问该函数的局部变量

二、JavaScript的预解析

   先对var变量和function函数进行解析,然后再执行其他的代码

1、var预解析

/*先解析var变量num
		  然后执行console输出
		  最后把10赋给num
       */
		console.log("num=",num);
		var num = 10; 

2、function函数的预解析

   /*
		   先解析fn函数的定义
		   然后执行console语句
		*/
		console.log("1+2+3+...+100=",fn());

		function fn(){
			var s = 0;
			for(var i=1;i<=100;i++){
				s += i;
			}
			return s;
		}

三、对象


1、对象:一切皆为对象,是属性和行为的结合体。在面向对象中把'属性'称为对象的成员(成员变量)
    
把'行为'称为成员方法(成员函数)。

属性:反映的是对象的静态特征

行为:反映对象的动态特征

2、JavaScript中的对象:是一种数据类型,用"{}"表示一个对象,在"{}"中包裹了对象的成员(包括属性和方法)
    
            以"key:value"(键-值对)方式存储各成员。"key"是成员名,"value"是成员的值

对成员的访问格式是:
            
             对象名.属性名 或 对象名['属性名']
             
             对象名.方法名([参数]) 或 对象名['方法名']([参数])

3、在JavaScript中可以先声明空对象,然后给对象添加属性和方法

  var 对象名 = {}
         
         对象名.属性名 = 值
         
         对象名.方法名 = function([参数]){
             方法体语句
         }

4、使用new运算符创建对象

  (1)Object:是JavaScript中的超级对象,即用户创建的对象都直接或间接的继承了该对象的某些特性。
  (2)创建方式:var 对象名 = new Object();

   (3)注意:

    A、建议构造方法名的首字母大写    

    B、this是关键字,代表当前对象

  6、使用for...in循环遍历对象的成员
    
         for(var 遍历名 in 对象名){
         
            循环体语句
         }

7、使用in运算符判断对象是否存在某个成员

  '成员名' in 对象名  -->返回一个boolean型的值,'true'表示存在,'false'表示不存在

四、JavaScript的内置对象:用户可以直接使用的对象

1、Math:包含数学常数属性和数学函数

 (1)属性 Math.PI:表示圆周率

(2)方法:Math.abs(x):返回x的绝对值
           
           Math.pow(x,y):返回x的y次方
           
           Math.sqrt(x):返回x的算术平方根
           
           Math.random():返回伪随机数(0.0~1.0之间)
           
           Math.round(x):返回x四舍五入后的最接近的整数
           
           Math.floor(x):返回小于或等于x的最大整数。
           
           Math.ceil(x):函数返回大于或等于x的最小整数
           
           Math.max():返回参数中的最大值
           
           Math.min():返回参数中的最小值

2、Date对象:使用new Date()创建对象

 (1)构造方法:
        
           A、new Date():无参构造,当前的日期时间
           
           B、new Date(y,M,d,h,m,s):带参的构造,参数是年、月、日、时、分、秒
           
           C、new Date(dateString): 参数是日期字符串

 注意:月份的整数值,从 0(1月)到 11(12月)

(2)常用方法

           A、获取年份:
           
              date.getFullYear():获取4位年份
              
           B、getMonth():获取0~11之间的月份     

           C、getDate():获取日期(一个月中的第几天)    

           D、getDay():获取星期几(一周中的第几天)

           E、getHours():获取小时数    

           F、getMinutes():获取分钟数

           G、getSeconds():获取秒钟数    

           H、getMilliseconds() :返回指定日期对象的毫秒数

           I、getTime():返回1970-1-1 00:00:00到当前时间之间的毫秒数

           J、toDateString():将日期转为字符

           K、toLocaleDateString():将日期转换为本地日期格式的字符串
 

3、Array对象


(1)数组类型检测的方法:

A、instanceof运算符

B、isArray()方法:Array.isArray([参数])

(2)数组的遍历

for(var i=0;i<arr.length;i++){
				 console.log(arr[i])
			 }

			  for(var k in arr){
				  console.log(arr[k])
			  }

				for(var k of arr){
					console.log(k)
			   }

			arr.forEach(function(t){
				console.log(t)
			})
		   
		   arr.map(function(t){
				console.log(t)
			})

(3)添加元素

A、push(参数...):在数组的末尾添加一个或多个元素
           
B、unshift(参数...):在数组开头添加一个或多个元素

(4)删除元素
A、pop():删除数组最后一个元素,若数组为空返回undefined
           
B、shift():删除数组的第一个元素,返回数组的第一个元素

(5)排序:
        
  sort()
            
(6)逆置:
        
 reverse()
           
(7)数组的索引:查找元素在数组中的位置
        
           indexOf([参数]):查找给定值的第一个索引
           
           lastIndexOf([参数]):查找给定值的最后一个索引
           
(8)数组转换字符:
        
           A、toString():直接转换
           
           B、join(字符):在转换字符串时,数据之间用给定的字符进行连接         

猜你喜欢

转载自blog.csdn.net/qq_48315043/article/details/121250495