目录
JavaScript数据类型
简单数据类型:
number | 数字型 |
---|---|
string | 字符串型 |
null | 空 |
Undefined | 缺少值(申明了变量但是没有初始化) |
Boolean | 布尔型(返回true或false) |
NaN | 非数字类型 |
复杂数据类型:
Array | 数组 |
---|---|
function | 函数 |
object | 对象 |
什么叫弱数据类型语言
简单来说就是声明变量时如果没有赋值,就看不出来声明的变量具体的类型,它可以是多变的,例如示例下的num就是两个不同的数据类型
let num = 10 // 数字型
let num = '123' //字符串型
强数据类型(Java):写出来一个单词就知道它存放的是什么数据类型 例如示例下,看到int就知道这个变量内只能是整型的
int num = 10
布尔类型在哪些情况下会返回false
0 false undefined ’ ’ null NaN
JavaScript数值类型的转换 显示转换 number类型
Number()
:可以用于任何的数据类型
parseInt
:提取 整数数值
paseFloat
:提取浮点数值
i++ 和++i的区别
i++ 先赋值后运算
++i先运算后赋值
= == ===的区别
=是赋值号,通常用来声明变量,将右边的值给左边
==是相等,用来比较两个值是否相等(也只比较两个值是否相等,不会比较数据类型是否相等)
===是全等,用来比较两边的值、数据类型必须完全一致
switch语句和if else if语句的区别
- 一般情况下,他们两个可以相互替换
- switch…case 语句通常处理case为比较确定值得情况,而if…else…语句更加灵活,常用于范围判断(大于、等于某个范围)
- switch语句进行条件判断后直接执行到程序的条件语句,效率更高。而if…else语句有几种条件,就得判断多少次。
- 当分支较少时,if…else语句执行效率比switch语句高。
- 当分支较多时,switch语句执行效率比较高,而且结构更清晰。
如何利用双重for循环实现冒泡排序
let arr = [5, 2, 3, 4, 1, 6]
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 声明一个临时变量 临时存储数据
let temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
console.log(arr) // 1,2,3,4,5,6
while循环执行思路:
while(条件表达式){
//循环代码
//操作表达式
}
- 先执行条件表达式,如果结果为true,则执行循环体代码;如果为false,则退出循环,执行后面代码
- 执行循环体代码
- 循环体代码执行完毕后,程序会继续执行条件表达式,如条件仍为true,则会继续执行循环体,直到循环条件为false时,整个循环才会结束
什么是数组
数组就是一组有序的数的集合
数组的操作(增删改查)
增(数组添加新的数据) | arr.push(新增的内容)arr.unshift(新增的内容) |
---|---|
删(删除数组中的数据) | arr.pop()arr.shift()arr.splice(操作的下标,删除的个数) |
改(重新赋值) | 数组名[下标] = 新值 |
查(查询数组数据) | 数组名[下标] |
函数的形参和实参
在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,而在调用该函数时,同样也需要传递相应的参数,这些参数被称为实参。
参数 | 说明 |
---|---|
形参 | 形式上的参数 函数定义的时候 传递的参数 当前并不知道是什么 |
实参 | 实际上的参数 函数调用的时候 传递的参数 实参是传递给形参的 |
break、continue、return的区别
- break:结束当前循环体(如for、while)
- continue:跳出本次循环,继续执行下次循环(如for、while)
- return:不仅可以退出循环,还能够返回return语句中的值,同时还可以结束当前的函数体内的代码
JS 中作用域的范围及作用
1、全局作用域
作用于所有代码执行的环境(整个script标签内部)或者一个独立的js文件(全局有效)
2、局部作用域
作用于函数内的代码环境,就是局部作用域。因为跟函数有关系,所以也称作函数作用域(局部有效)
3、块级作用域
块作用域由{ }包括,if语句和for语句里面的{ }等({}内有效)
什么是对象
对象是一组无序的键值对的集合
对象的特点
- 无序的数据的集合
- 可以详细的描述某个事物
对象中取值和赋值的方法有哪些?它们有什么不同
1、点方法
2、中括号语法
不同点:中括号语法中可以支持变量和属性名,而点方法只能存放属性名而不支持变量
对象的操作(增删改查)
增(对象添加新的数据) | 对象名.新属性名 = 新值 |
---|---|
删(删除对象中的属性) | delete 对象名.属性名 |
改(重新赋值) | 对象.属性 = 值 对象.方法 = function() {} |
查(查询对象) | 对象.属性 或者 对象[‘属性’] 对象.方法() |