一、基础笔试题
1. 声明age变量并赋值为18
//存在变量提升。未声明也可以使用,未声明时为undefined
//不常用,以后声明变量统一使用 let
var age = 18
// 不存在变量提升。变量需要先声明后再使用,否则会报错;不允许重复声明。
let age = 18
//一旦声明就必须立即初始化; 常量值就不能改变了(指的是内存地址不能改变)
const age = 18
2. 声明uname, age, gender 多个变量
let uname = 1
let age
let gender
console.log(typeof uname)//number
3. 定义数组,保存 小黑、小红、小花 三个人的名字
let arr = ['小黑', '小红', '小花']
4. 写出for循环遍历数组的基本语法
for (let i = 0; i < 8; i++) {
document.write('o')
}
// oooooooo
5. 写出数字自增的做法有哪些
let a
a++//先运算,再+1
++a//先+1,再运算
6. 写出if单分支、双分支、多分支语句
//单支
if (条件) {
//执行语句;(判断条件为true的时候执行)
}
//双支
if (条件) {
//执行语句;(判断条件为true的时候执行)
} else {
// 执行语句;(判断条件为false的时候执行)
}
// 注意:if()里面的可以写任何的表达式,都会自动数据类型转化成布尔值。
//多分支
if (表达式1) {
执行语句1
} else if (表达式2) {
执行语句2
} else if (表达式3) {
执行语句3
} else {
}
// 执行过程 从上往下,满足哪个条件就执行其相对应的语句
//都不满足时,执行最后的else的语句,只能进入其中之一
7. 请写出三元运算符的语法
//条件 ? 表达式1 : 表达式2
let num = 10;
let result = num > 5 ? '是的' : '不是的';
console.log(result); //是的
8. 请写出for循环的语法
for(初始化变量;条件表达式;操作表达式){
//循环体
}
//初始化变量 就是声明一个普通变量,通常用作为计数器使用
//条件表达式 用来决定每一次循环是否继续执行,就是终止的条件
//操作表达式 是每次循环最后执行的代码,经常用于计数器变量进行更新(递增或者递减)
9. 写出出数组的常用方法和对应的作用
1) 创建数组
let arr = ['小白','小黑','小黄','小绿',]
2) 获取数组里面的元素
使用数组名[n]来获取,n从0开始,arr[0]代表第一个元素
//定义数组
let arr = [1,2,3]
// 获取数组中的第2个元素
alert(arr[1]
3)数组的遍历
//数组的遍历:借助for循环
let arr3 = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
for (var i = 0; i < 7; i++) {
console.log(arr3[i]);
}
4) 新增数组元素
a.直接修改length长度(新增为undefined)
let arr = ['123', '456', '789']
arr.length = 5
console.log(arr[3]) // undefined
console.log(arr[4]) // undefined
b. 加数组元素
//修改数组元素:修改索引号
let arr = ['123', '456', '789']
arr[3] = '新加'
arr[4] = '多加'
arr[0] = '替换' //直接赋值会替换相应的元素值
console.log(arr) //如果直接赋值给数组,那么会将整个数组覆盖
5.数组翻转
设置一个新的数组,把旧数组里的数从尾部开始依次扔进去
let newArr = [];
let arr = ['我', '不', '是', '黄', '容'];
for (let i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
console.log(newArr);
10. 写出函数的语法
带有形参和返回值
函数的本质是封装(包裹),函数体内的逻辑执行完毕后,函数外部如何获得函数内部的执行结果呢?要想获得函数内部逻辑的执行结果,需要通过 return
这个关键字,将内部执行结果传递到函数外部,这个被传递到外部的结果就是返回值。
fuction 函数名(形参1, 形参2, 形参3 ...) {
//函数体
}
//下面是调用
函数名(实参1, 实参2, 实参3);
形参1 = 实参1;
形参2 = 实参2;
function age(x, y) {
let sum = x + y
return sum
}
age(1, 2)
console.log(sum)//3
11. 写出作用域有哪些
1)全局作用域
作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 文件
处于全局作用域内的变量,称为全局变量
2)局部作用域
作用于函数内的代码环境,就是局部作用域。 因为跟函数有关系,所以也称为函数作用域。
处于局部作用域内的变量称为局部变量
如果函数内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐
但是有一种情况,函数内部的形参可以看做是局部变量。
12. 写出对象语法
声明一个对象类型的变量与之前声明一个数值或字符串类型的变量没有本质上的区别。用花括号。
let user = {}//user 便是一个对象了,目前它是一个空对象
13. 写出遍历对象的语法
let obj = {
uname: 'pink'
}
for(let k in obj) {
// k 属性名 字符串 带引号 obj.'uname' k === 'uname'
// obj[k] 属性值 obj['uname'] obj[k]
console.log(k) //数 打印属性名
console.log(obj[k])//对象 打印属性值
}
14. 写出基本数据类型有哪5种
Undefined(未定义类型)、Null(空引用数据类型)、 Boolean(布尔类型)、Number(数字类型)和String( 字符串类型)
15. 写出 转换为数值型常见方法
1)隐式转换
+号两边之要有一个是字符串,都会把另一个转成字符串
+‘123’ 是数字类型 除了+外,- * / 都会把数据转换为数字型
let num = 13 // 数值
let num2 = '2' // 字符串
// 结果为 132,+若一侧为字符串,则会将另一侧也转化为字符串
// 原因是将数值 num 转换成了字符串,相当于 '13'
// 然后 + 将两个字符串拼接到了一起
console.log(num + num2)//132
// 结果为 11
// 原因是将字符串 num2 的'2'转换成了数值,相当于 2
// 然后数值 13 减去 数值 2
console.log(num - num2)//11
let a = prompt('请输入一个数字')//1
let b = prompt('请再输入一个数字')//2
alert(a + b);//12
2)显示转换
parseInt 取整数
parseFloat 取数字 带小数 浮点数
Number
通过 Number
显示转换成数值类型,当转换失败时结果为 NaN
(Not a Number)即不是一个数字。
let t = '12'
let f = 8
// 显式将字符串 12 转换成数值 12
t = Number(t)
// 检测转换后的类型
// console.log(typeof t);
console.log(t + f) // 结果为 20
16. 写出模板字符串使用方式
通过单引号( ''
) 、双引号( ""
)或反引号包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
注意事项:
-
无论单引号或是双引号必须成对使用
-
单引号/双引号可以互相嵌套,但是不以自已嵌套自已
-
必要时可以使用转义符
\
,输出单引号或双引号 -
模板字符串 外面用`` 里面${} 反引号
eg:我今年${age}岁了
let user_name = '小明' // 使用单引号
let gender = "男" // 使用双引号
let str = '123' // 看上去是数字,但是用引号包裹了就成了字符串了
let str1 = '' // 这种情况叫空字符串
documeent.write(typeof user_name) // 结果为 string
documeent.write(typeof gender) // 结果为 string
documeent.write(typeof str) // 结果为 string
17. 写出布尔类型的值为false 的值哪些
空 👉( 、 0、undefined、null、false、NaN转换为布尔型为false,其余都为true)
18. 写出 +加号的功能有哪些
1)求和运算:
- 两边都是数值类型时进行求和运算,如果数值+布尔值会直接把布尔类型转换成 1 or 0 来进行运算
let num = 1+2
let num1 = 1+true//1+1
let num2 = 1+false//1+0
2)连接字符串:
- 字符串+任何类型数据 = 拼接之后的新字符串
- 变量“相加”:要看两个变量中的是否有字符串,如果有,就起到连接字符串作用
let str =1+'1'; // '11'
let str = '1' + true;// '1true'
3)数值字符串转数值:
- 可以将“数值字符串”转成 数值
- 可以将prompt 接受的数值(string类型)转换成数值
let num = +'1';//1
console.log(typeof num);//number
//接受的值转换成数值
let userAge = +prompt('请输入您的年龄:'); // +'1'>1
console.log(userAge); //1
4)复合赋值运算符
- 概念:变量自身与数据运算结果赋值给变量本身
- 复合赋值运算符:是针对变量来做操作的,不能直接对直接变量做操作
let x=1;
x +=5; //6
5)+=的作用
- +=可以对字符串变量起到 连接的作用
let str ='my name is pink';
str +=' how are you';
console.log(str);//my name is xiaoming how are you
有点多了,明天再写排错题