javascript基础知识练习题
无论学习什么语言,基础是决定高度的一大因素,本文是我整理的javascript基础题目,不难,都是最基础的知识。值得一刷
1.数据类型 / 变量
1.1 JS中的数据类型都有哪些,他们之间的区别是什么?
1.2 数据类型的区别
let a = 12;
let b = a;
b = 13;
console.log(a);
let a = {n:12};
let b = a;
b['n'] = 13;
console.log(a.n);
let a = {n:12};
let b = a;
b = {n:13};
console.log(a.n);
这道题就不给详解了,上面已经介绍了数据类型的区别,利用他的区别来做这道题使你掌握的更扎实吧!!!
1.3 检测数据类型的四种方式?
下图保存起来,50%查看效果最加
1.4 创建变量的方式
2. 分析程序
2.1 parseFloat / alert
let num = parseFloat('width:100px');
if(num===100){
alert(1);
}else if(num===NaN){
alert(2);
}else if(typeof num==='number'){
alert(3);
}else{
alert(4);
}
parseFloat
的规则是从左向右的查看字符串(不是字符串就先转为字符串)中的每一项,如果第一个不是数字那么直接返回NaN
,如果第一个是数字,那么直到遇到非有效数字就停止,返回非有效数字前面的数字。typeof
的返回值首先是一个字符串alert
弹出的东西都会隐性转为字符串
答案 ->‘3’
2.2 for / if / break / continue
for(var i=0;i<10;i+=2){
if(i<=5){
i++;
continue;
}else{
i+=3;
break;
}
alert(i);
}
alert(i);
这道题是在上学期间就会遇到的题目吧,回忆一下break、continue在for中的作用吧!
for
循环中四步:先初始值 -》判断条件(不满足条件不做下面的几步) -》执行循环体 -》步数累计break:
终止整个循环,并且下面的代码的不再执行,也不会执行步长累计continue:
终止本次循环,继续下次循环。下面的代码不再执行,但是会去执行步长累计
答案:输出一次 ‘9’
2.3 腾讯的一道字符串拼接题目
let result = 1+null+true+undefined+'Tencent'+false+[]+undefined+null;
console.log(result);
字符串的四则运算,加法时如果加号左右出现字符串就变成字符串拼接,基本数据类型直接拼接,引用数据类型变为字符串再拼接
答案:‘NaNTencentfalseundefinednull’
2.4 boolean的应用
A:3-'1px'?alert(2):alert(3);
B:3+'1px'?alert(4):alert(3);
字符串的四则运算
答案:
A:‘3’
B:‘4’
2.5 对象的获取
var name = 10;
var obj = {
name: 'lili'
};
console.log(obj['name']);
console.log(obj[name]);
对象中获取属性的方式
答案:lili undefined
2.6 ++i / i++ 上学就会做的一道题
let i=1;
console.log(1-(++i)+(i--)+1+(i++)-(--i)-1);
console.log(i);
上面的这个估计大家都会做,但是我说的不是这个,想和大家聊聊i++和i+=1这两个的区别;
i++ :如果i是一个字符串,那么加之前会先转为数字再加
i+=1:如果i是字符串,就是字符串拼接。不会隐性转化
3. 数组
3.1 向下面数组末尾追加一个值100,你有几种办法?
let ary = [12,14,13,35,16,28];
我可以想到的有三种,你们呢?欢迎追加方法
ary.push(100);
ary[ary.length] = 100;
ary.splice(ary.length,0,100);
3.2 把下面的数组进行排序(降序)
let ary = [12,14,13,35,16,28];
ary.sort((a,b)=>b-a)
3.2 实现找到数组第n项到第m项(包含n和m)的内容,返回一个新的数组
ary.slice(n-1,m)
4. 字符串
4.1 .完成以下字符串处理需求
let time = '2020-04-16';
//->需要获取的结果是 ‘2020/04/16’
time = time.replace(’-’,’/’).replace(’-’,’/’);
或
time = time.split(’-’); time =${time[0]}/${time[1]}/${time[2]}
;
4.2 简述字符串截取方法 substr 、 substring 、 slice 三者的区别
substr(n,m)
:截取的是字符串中索引为n开始的,并且截取m位substring(n,m):
从索引为n的位置开始截取,截取到索引为m的位置但是不包含索引为m这一项slice(n,m):
和substring
一样,但是他可以支持负数索引
5. 程序
最后的目的就是需要我们敲出来程序呀,下面是整理的几个最小案例,使用的就是上面的这些基础知识就可以;
5.1 任意数求和(要求输入的需要过滤,把非有效数字除去)
5.2 url问号传参解析
5.3 数组去重
5.4 随机摇号
6. 总结
我们想要学会走首先需要会爬;想要跑首先需要走,每一个过程的都是需要上一个过程做基础,并为下一个过程做铺垫;任何时候,学好基础知识,一步步的向上走才是最快的途径。没有捷径,如果真要有,我认为那就是立马行动!加油,程序员们!