首页 > 代码库 > js基础四

js基础四

作用域

在函数内部定义的变量,旨在函数内部使用

函数级作用域在js当中,只有函数才会产生作用域,而if、whhile、for都不会产生作用域

var a =1;var fn1 = function(){

var a = 10;

};var fn2 = function(){

console.log(a);   //这里的打印结果为1

};fn1();fn2();

var a = 10;

function fn(b){ 系统自动声明b: var b = 10;

a =30;
function fn1(){
var a = 40;
console.log(a);   打印结果为40
}
function fn2(){
 a = 50; 给a赋值,这里fn2没有定义
 console.log(a); 打印结果为50

}
fn1();   这里的意思是调用函数fn1
fn2();   这里的意思是调用函数fn2
console.log(a);   打印结果为50

}fn(a);console.log(a); 打印结果为50

 

后面需要用到函数的计算的结果需要用到返回值return,希望用到函数的计算结果,后续需要用到就加,不需要就不需要加

 

变量提升:在声明变量的时候,会把当前变量声明的时机放到当前作用域的开头

	  只有变量的声明才有提升,变量的赋值没有提升

cosole.log(a);var a = 10; 这里是简写的,一个声明var a; a = 10,将10赋值给a

 

变量提升的含义:var a;console.log(a);这里打印结果为没有定义 undefined a = 10; a的赋值10不会提升,所以上面的打印结果是没有定义

 

对象 用花括号括起来,是无序集合

var obj = {

name:‘Bob‘,    数据与数据之间用,隔开     这里name为属性名,后面的Bob;属性名可以加上‘‘,如‘name‘ =‘bob‘,不加也没有影响
age:20,
gender: ‘male‘
123:flase,      这里的属性名可以以数字开头,但是
‘test+test‘: ‘hello‘,         这里可以使用+,但是如果这里属性名不用 ‘‘的话会出错,  

}console.log(obj);

console.log(obj.name) 取对象属性的值方式一:obj的对象name属性,加点:. 点会把点后面的名称直接作为属性名 .后面的值作为属性取值,

console.log(obj[‘name‘]) 方式二:加方括号:会把 []中的返回值作为属性名// console.log(obj.test+test) 打印结果为unfi 使用点:对于一些特殊的属性名,比如使用数字开头,或者属性名中间出现了一些符号,这些属性只能通过方括号来取console.loe(obj[‘123‘]) 使用.的话,代码会紧凑,更直观,推荐使用.来取属性值

function fn(a,b,c){

var arr = [a,b,c];
for(var i = 0;i < arr.length-1;i++){   数组排序
for(var j = 0; j< arr.length-i-1;j++){   前length-i次中的最大的放在最后边
if(arr[j] > arr [(j + 1]){
	var temp = arr[j];
	arr[j] = arr[j + 1];
	arr[j + 1] = temp;
}
}						
}                                 

}

 

 

 

 

 

var arr = [1,2,3]console.log(arr[‘0‘]) 这里0,加不加‘‘打印的结果是一样的,对于数组,对象可以使用的格式,数组也可以. []console.log(arr[‘length‘]) 这里会打印这个数组的项数,3项,数组自带的 自带为数组的对象

对象和数组的区别例:var obj = {

0 : 1,
1 : 2,
2 : 3,

}console.log(obj) console.log(obj[‘length‘]) 这个是对象,不会打印出数组的项数,属性的变化需要定义了才会有

array对象方法   构建数组以下三种方式      var arr = [1,2,3]这个是数组字面量,如果没有特殊情况,就是用这个方式,比以下三种方法更简便

一: condytuvyot是处理继承的var arr = new Array() 赋值的时候不够直观arr[0] =1;arr[1] =2;arr[2] =3;

二:var arr = new Array(5) 不存储数据的话,length为5,如果arr[5]的话,打印出来的长度为6

三:var arr = new Array(1,2,3)

数组join的使用方法var arr = [1,2,3,‘hello‘];var result = arr.join ();数组每一项都拼接在一起console.log(arr);console.log(result);

 

数组pop使用方法:把数组的最后一项删掉,会修改数组本身,将删除的一项作为返回值的方法 要是取最后一项的话,用[]取值就可以var arr = [1,2,3,‘hello‘];var result = arr.pop ();console.log(arr);console.log(result);

 

数组pus使用方法:给数组添加一个或多项新项,第一项后的项数可以写也可以不写,会修改数组本身 并且返回新长度,添加新项是添加到末尾的;如果是添加数组的话,把数组作为一项(保留数组),添加到末尾中去,例2var arr = [1,2,3,‘hello‘];var result = arr.pus (‘world‘);console.log(arr);console.log(result);例2

var arr = [1,2,3,‘hello‘];
var arr2 = [nh,nk]
var result = arr.pus (‘arr2‘);
console.log(arr);
console.log(result);

reverse方法:修改元素组,把数组的从左到右的排序,改成从右到左 shift方法:删除数组第一项并将删除的一项作为返回值的方法

slice方法,需要填写开始的角标,和结束的角标(结束的角标5不包括在内,不会被选取到)角标可以为负数,只有slice这里可以使用负数,代表从右往左数的对象 截取数组的片段 不会修改数组本身,截取出来的长度比实际的少1var arr = [1,2,3,‘hello‘,4,5,‘js‘];

var result = arr.slice (‘3,5‘);    var result = arr.slice (‘3,-2‘);
console.log(arr);
console.log(result);

sort方法:对数组的元素进行排序 自动从小到大排序,对首字符进行从左到右进行排序 (要明白冒泡排序嵌套循环的机制,怎么把数组从小到大排序的,重要!) var arr = [2,1,3,7,4]; var arr = [23,1,300,7,4]; 后面的这个打印结果为1,23,300,4,7

arr.sort();
console.log(arr);    打印结果为1,2,3,4,7
指定sort排序比较规则,放在一个函数中
function rule(a, b){    
if(a < b){      比较a,b哪一个在前面         
	如果要让a出现在b的前面,返回小于0的数;
return -1;
}else{
	要让b出现在a的前面,就返回大于0的数
return 1;
}

}arr.sort(rule); arr.sort(rule());后面这个表示调用之后的返回值,先计算实参,打印的话还是按照默认的排序规则传进去的console.log(arr)

	以上简写   从小到大排列     要从大到小排列的话将return a - b改成return b - a
	function rule(a, b){
		return a - b;
	}
	arr.sort(rule); 
	console.log(arr);

 

splice方法:作用一。删除数组中间的某一部分 需要填写两个参数,一个数删除的角标,第二个参数写需要删除几项

var arr = [23,1,300,7,4]
var result = arr.splice(2,1)
console.log(arr);
console.log(result); 这个是删除的项的返回值
	   作用二。替换的特性,替换数组中的某一部分
	    var arr = [23,1,300,7,4]
		var result = arr.splice(2,1,400,500)
		console.log(arr);
		console.log(result)
		作用三。在数组中某个位置插入新项
		var arr = [23,1,300,7,4]
		var result = arr.splice(3,0,100,200)   3表示在角标为3的位置插入,0表示不删除数组中的项
		console.log(arr);
		console.log(result)

tostring方法:把数组转化成字符串,并返回结果shift 删除并返回数字的第一个元素unshift 向数组中的开头添加新的元素

js基础四