变量就是计算机存储数据的容器
变量声明和赋值
语法
<script>
let name = prompt('输入你的姓名')
document.write(name)
</script>
交换2变量
<script>
let num1 = 1
let num2 = 2
let temp = num1
num1 = num2
num2 = temp
document.write(num1,num2)
</script>
let与var的区别
var 可以先使用再声明
var 声明过的变量可以重复声明
数组
<script>
let num1 = [1,2,3,4]
let name = ['张无忌','赵敏','周芷若','Boss',10]
document.write(num1[0].toString(),name[0],name[4].valueOf())
</script>
字符串
‘’ ‘’, ’ ', ``
模板字符串
<script>
let age =18;
console.log(`我今年${age}岁`)
</script>
类型转换
隐式转换
<script>
console.log(2+2)
console.log(2+'2') //22
console.log(2-'2') //0
console.log(+'2') //+2
console.log(typeof '2') //string
console.log(typeof +'2')//number
console.log(+'2' +2) //4
</script>
显示转换
<script>
let str = '123'
console.log(Number(str)) //123
console.log(Number('hello')) //NaN
console.log(parseInt('23hx'))//23
console.log(parseInt('13.14'))//13
console.log(parseInt('h123'))//NaN
console.log(parseFloat('23hx'))//23
console.log(parseFloat('13.14'))//13.14
console.log(parseFloat('h12.13'))//NaN
</script>
自增运算符
++i 和 i++
单行使用没区别
参与运算 ,++i先加后用,i++ 先用后加
<script>
let num = 1
console.log(num++ + ++num +num)//1+3+3
</script>
比较运算符
字符串比较:
从左往右比较ASCII码
比较运算符有隐式转换,会把’2’转换成2
涉及NaN的都是false
<script>
// ==只判断值 ===全等判断数据类型和值
console.log(2 == '2') //true
console.log(undefined == NaN) //false
console.log(2 ==='2') //false
console.log(NaN === NaN) //false NaN不等于任何人
console.log(2 !== '2') //true
console.log(NaN !== NaN) //true
</script>
逻辑运算符
&& || !
三元运算符
数字补0
<script>
let num = prompt('输入数字')
num<10?alert(0 + num) :alert(num)
</script>
99乘法表
<script>
for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= i; j++) {
document.write(`${j}×${i} = `+i*j)
document.write(' ')
}
document.write('</br>')
}
</script>
数组
数组求和
<script>
let arr = new Array(1,2,3,4,5,6)
let sum = 0
for (let i = 0; i < arr.length; i++) {
sum += arr[i]
}
document.write(`求和:${sum}`)
document.write(`平均值:${sum/arr.length}`)
</script>
数组最大值最小值
<script>
let arr = new Array(1,2,3,4,5,6,20,17,13)
let max = arr[0]
let min = arr[0]
for (let i = 1; i < arr.length; i++) {
if(arr[i]>max){
max =arr[i]
}
if(arr[i]<min){
min = arr[i]
}
}
document.write(`最大:${max}`)
document.write(`最小:${min}`)
</script>
数组新增
<script>
let arr = new Array(1,2,3,4,5,6,20,17,13)
arr.push(10,2) //添加到数组末尾
arr.unshift(0,0) //添加到数组头
document.write(arr)
</script>
数组筛选
<script>
let arr = new Array(1,2,3,4,5,6,20,17,13)
let newArr = []
for (let i = 0; i < arr.length; i++) {
if(arr[i]>10){
newArr.push(arr[i])
}
}
document.write(newArr)
</script>
数组删除
<script>
let arr = new Array(1,2,3,4,5,6,20,17,13)
arr.pop() //删除最后一个元素
arr.shift() //删除第一元素
arr.splice(0,1) //起始位置 删除几个
document.write(arr)
</script>
数组冒泡排序
<script>
let arr = new Array(1,2,3,4,7,5,10)
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 tmp = arr[j+1]
arr[j+1] = arr[j]
arr[j] = tmp
}
}
}
//升序
arr.sort(function (a, b){
return a - b
})
//降序
arr.sort(function (a, b){
return b - a
})
arr.sort(function (a, b){
return -1 // >=0(升序) <0(降序)
})
document.write(arr)
</script>