JS笔试题合集-日常笔记

1.JS随机生成N个长度的字符

1.随机数
2.N个长度,需要用到循环
3.字符:随机数生成后需要拼接,可用到数组。

function aa(N){
	var arr =[];//定义一个数组,用来拼接字符
	for(var i=0;i<N;i++){//N个长度
		var ran = Math.foor(Math.random()*10);//生成随机数
		arr.push(ran);//在数组最后添加生成的随机数
	}
	console.log(arr.join(""));//使用join转换为字符
}
aa(10);//生成10个长度的字符

2.若a=1,b=2在不使用第三个变量的情况下,交换a和b的值。(至少两种)

//方法1
var a = 1, b = 2;
a = a + b; // a=3
b = a - b; // b = 3-2; b=1;
a = a - b; // a = 3 - 1; a=2;
console.log(a,b); // a=2 , b=1

//方法2
var a = 1, b = 2;
console.log([a,b],[b,a]); // ES6语法 1,2  2,1

//方法3

var  a = 1, b = 2;
a = [a,b];
a = a[1];
b = a[0];
console.log(a,b); // 2,1

//方法4
var  a = 1, b = 2;
a = [b , b = a]; // a[0] = 2, a[1] = 1
console.log(a)	// 2,1

3.判断回文(如:level就为回文)

1.回文就是字符‘正’过来和‘倒’过来是一样的 主要:reverse() 数组的反转
2.可以把字符转换为数组 date.split("")
3.使用反转属性 reverse() 把数组倒过来
4.把数组转换成字符串 join("");
5.比较

var date = 'level';
var arr = date.split("").reverse().join("");
date == arr? console.log(true) : console.log(false);

4.以下代码输出什么,并简要说明。

var a = false
var b = a/0
if(a){
	console.log(a * 2 + '2' + 4)
}else{
	console.log(!a * 2 + '2' + 4)
}

1.a / 0 返回的是 false / 0 值为 NaN 不是一个数
2.之后a为false 所以进入else
3. !a = true a为false 取反则为 true 等于 1
4. console.log(1 * 2 + ‘2’ +4)
5. 结果为:224

5.请问下列代码输出什么,并简要说明!

function a(xx){
	this.x = xx;
	return this;
}
var x = a(5);
var y = a(6);

console.log(x.x);
console.log(y.x);

1.普通函数中的 this 指向的是 window
2.所以在 a()中 可以理解成在 window 上添加了一个属性为 x,并返回 window
3.var x = a(5),其实 x = window;
4.所以 x.x 等于undefined 因为 window.window
5.var y = a(6), y = window ,并把window.x = 6
6.y.x = 6
7.输出为 ,undefined 6

以上是我遇到的一些笔试题,并持续更新中

你可能感兴趣的:(JS,javascript)