全栈之路javascript基础知识2

Posted 涂宗勋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全栈之路javascript基础知识2相关的知识,希望对你有一定的参考价值。

1、==!=在比较之前会进行类型转换,===!==比较之前不进行类型转换,一般推荐使用===!==.
2、关于for循环,除了和java类似的普通for循环之外,还有for in和for of和forEach。其中for in遍历的是对象的属性而不是内容,同时不保证顺序。forEach不能break和return。for of保证顺序,可以break和return,是ES6之后的语法。例如有如下代码:

function test8(){
	let arr=["a11","a12","a13","a14","a15"];
	arr.name="testArr";
	arr[7]="a77";
 arr[8]="a88";

	for(const a in arr){
		console.log(a);
	}
	console.log("##########################");
	for(const a of arr){
		console.log(a);
		if("a13" === a){
			console.log("break");
			break;
		}
	}
	console.log("##########################");
	arr.forEach((a)=>{
		console.log(a);
	})
	console.log("##########################");
	arr.forEach((a,index,arr1)=>{
		console.log(a,index,arr1);
	})
}
test8();

运行后结果如下:

0
1
2
3
4
7
8
name
##########################
a11
a12
a13
a14
a15
2undefined
a77
a88
break
##########################
a11
a12
a13
a14
a15
a77
a88
##########################
a11 0 (9) ["a11", "a12", "a13", "a14", "a15", empty × 2, "a77", "a88", name: "testArr"]
a12 1 (9) ["a11", "a12", "a13", "a14", "a15", empty × 2, "a77", "a88", name: "testArr"]
a13 2 (9) ["a11", "a12", "a13", "a14", "a15", empty × 2, "a77", "a88", name: "testArr"]
a14 3 (9) ["a11", "a12", "a13", "a14", "a15", empty × 2, "a77", "a88", name: "testArr"]
a15 4 (9) ["a11", "a12", "a13", "a14", "a15", empty × 2, "a77", "a88", name: "testArr"]
a77 7 (9) ["a11", "a12", "a13", "a14", "a15", empty × 2, "a77", "a88", name: "testArr"]
a88 8 (9) ["a11", "a12", "a13", "a14", "a15", empty × 2, "a77", "a88", name: "testArr"]

可以看到,for in打印了数组的索引和name,会跳过没有实际内容的元素;for of顺序遍历数组的内容,空指也会遍历,同时可以正确break退出循环;forEach也是顺序遍历,会跳过空值元素。
3、js中定义有返回值的函数,只需要函数中return即可,不需要像java一样指定返回值类型,例如:

function test9(){
	return "hello world";
}
let h=test9();
console.log(h);

执行结果会正常打印“hello world”.
4、js中string类型属于基本类型,或者叫原始类型。对于所有基础类型变量,不能动态添加可以使用的属性,非基础类型变量才能动态添加可以使用的属性。并且一个变量的赋值,如果是使用new创建的,即使看起来像是基本类型,实际还是object。例如:

function test10(){
	let name1="tzx";
	name1.age=31;
	let name2=new String("tuzongxun");
	name2.age=31;
	console.log(name1.age);
	console.log(name2.age);
	console.log(typeof name1.age);
	console.log(typeof name2.age);
}
test10();

上边代码执行结果如下:

undefined
31
undefined
number

5、js数组常用操作一,filter示例:

function test11(){
	let arr=[{"name":"zs","age":20},{"name":"ls","age":20},{"name":"ww","age":30}];
	arr.filter(function(a){
		return a.age==20;
	}).forEach((a)=>{
		console.log(a);
	}
	)
}
test11();

filter用来过滤,和java中stream中的filter差不多的作用,上边代码执行后会输出age为20的对象,如下:

{name: "zs", age: 20}
{name: "ls", age: 20}

6、js数组常用操作二,find示例:

function test12(){
	let arr=[{"name":"zs","age":20},{"name":"ls","age":20},{"name":"ww","age":30}];
	let user=arr.find(function(a){
		return a.age==20;
	});
	console.log(user);
}
test12();

find可以用来过滤查找,返回查找到的第一个,然后结束执行,上边代码执行结果如下:

{name: "zs", age: 20}

7、js数组常用操作三,map示例:

function test13(){
	let arr=[{"name":"zs","age":20},{"name":"ls","age":20},{"name":"ww","age":30}];
	let arr1=arr.map(function(a){
		return a.age;
	});
	console.log(arr1);
}
test13();

map可以处理一个数组,然后根据逻辑生成一个新的数组,这里就是取对象中的age值组成了一个新的数组返回,执行结果如下:

(3) [20, 20, 30]

8、js数组常用操作四,push、pop、unshift和shift,示例如下:

function test14(){
	let arr=[1,2,3];
	arr.push(4)
	console.log(arr);

	arr.pop();
	console.log(arr);

	arr.unshift(4,4);
	console.log(arr);

	arr.shift();
	console.log(arr);
}
test14();

上述代码执行后输出如下,push可以向数组末尾添加一个或者多个元素,pop从数组末尾删除一个元素,unshift在数组开头添加一个或多个元素,shift从数据开头删除一个元素。

(4) [1, 2, 3, 4]
(3) [1, 2, 3]
(5) [4, 4, 1, 2, 3]
(4) [4, 1, 2, 3]

9、js数组常用操作五,concat、reverse、join和sort,示例如下:

function test15(){
	let arr=[4,1,2,3];
	let arr1=[10,11,12];
	let arr2=[20,21,22];
	let arr3=arr.concat(arr1,arr2);
	console.log(arr3);

	arr3.reverse()
        console.log(arr3);

	console.log(arr3.join());
	console.log(arr3.join("-"));
	
	arr3.sort(function(a,b){
		return a-b;
	});
	console.log(arr3);
	arr3.sort(function(a,b){
		return b-a;
	});
	console.log(arr3);
}
test15();

concat可以把多个数组元素合并为一个数组,reverse反转数组里的元素,join把数组内的元素拼接成字符串,如果不指定参数则默认使用逗号拼接,sort可以对数组排序,排序逻辑根据参数中的函数确定,可以对基础类型排序,也可以对对象排序。上述代码输出结果如下:

(10) [4, 1, 2, 3, 10, 11, 12, 20, 21, 22]
(10) [22, 21, 20, 12, 11, 10, 3, 2, 1, 4]
22,21,20,12,11,10,3,2,1,4
22-21-20-12-11-10-3-2-1-4
(10) [1, 2, 3, 4, 10, 11, 12, 20, 21, 22]
(10) [22, 21, 20, 12, 11, 10, 4, 3, 2, 1]

以上是关于全栈之路javascript基础知识2的主要内容,如果未能解决你的问题,请参考以下文章

全栈之路javascript基础知识2

全栈之路-前端javascript基础知识2

全栈之路javascript基础知识1

全栈之路-前端javascript基础知识5

全栈之路-前端javascript基础知识5

全栈之路-前端javascript基础知识1