请说出以下代码都错在哪里,以及书写正确的代码
JS代码书写位置
<script src="./02.js">
alert('弹框出现')
</script>
分析错误:script标签一旦设置的src属性,则里面代码不运行
正确写法:
<script>
alert('弹框出现')
</script>
输出语句
prompt(请输入您的姓名)
分析错误:
正确写法:
<script>
prompt(请输入您的姓名)
</script>
变量01
let age = 18
let age = 19
分析错误:变量名称不能相同
正确写法:
let age1 = 18
let age2 = 19
变量02
console.log(age)
let age = 18
分析错误:let 不能在声明变量之前先使用变量
正确写法:
let age = 18
console.log(age)
字符串01
let username = 张三
分析错误:张三 是字符串,需要使用引号包裹
正确写法:
let username = '张三'
字符串02
let uname = '张三"
分析错误:引号成对出现
正确写法:
let uname = '张三'
let uname = "张三"
let uname = `张三`
数组
// 需求:取出 星期六
let arr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
console.log(arr[6])
分析错误:数组第一个索引号为0
正确写法:
let arr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
console.log(arr[5])
自增
// 让num自身增加1
let num = 10
num + 1
分析错误:
正确写法:
let num = 10
num ++
switch分支
let num = prompt('请输入一个数字')
switch (num) {
case 1:
alert('用户您输入的是数字1')
case 2:
alert('用户您输入的是数字2')
case 3:
alert('用户您输入的是数字3')
default:
alert('用户您输入的是非1、2、3的数字')
}
分析错误:
- switch语句中缺少 break,会有穿透问题
- switch是进行“全等”比较,num变量存的是字符串类型数据,和case的值1 2 进行比较,是不成立的。
正确写法:
let num6 = +prompt('请输入一个数字')
switch (num6) {
case 1:
alert('用户您输入的是数字1')
break
case 2:
alert('用户您输入的是数字2')
break
case 3:
alert('用户您输入的是数字3')
break
default:
alert('用户您输入的是非1、2、3的数字')
break
}
while循环
let num = 1
while (num <= 5) {
document.write(`月薪过万不是梦<br/>`)
}
分析错误:没自增
正确写法:
let num = 1
while (num <= 5) {
document.write(`月薪过万不是梦<br/>`)
num++
for循环
for (let i = 1; i <= 3;) {
document.write(`月薪过万不是梦 <br/>`)
}
分析错误:没自增
正确写法:
for (let i = 1; i <= 3; i++) {
document.write(`月薪过万不是梦 <br/>`)
}
遍历数组
// 需求:取出数组中的每一项
let arr = ['马超', '赵云', '张飞', '关羽', '黄忠', '小黑', '小红']
for (let i = 1; i < arr.length; i++) {
console.log(arr[i])
}
分析错误:取不出来马超,从索引号0开始
正确写法:
let arr = ['马超', '赵云', '张飞', '关羽', '黄忠', '小黑', '小红']
for (let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
修改数组的项
// 需求:将数组中的小白修改成 小灰灰
let arr = ['小黑', '小白', '小红']
arr = '小灰灰'
分析错误:
原本arr变量存数组,现在存字符串小灰灰
语法: 数组名[下标] = 新值
正确写法:
let arr = ['小黑', '小白', '小红']
arr[1] = '小灰灰'
操作数组
// 需求:在数组arr的最后面添加 blue
let arr = ['red', 'green']
arr.push = 'blue'
分析错误:语法:数组.push(数据1, 数据2, …) ****是一种方法需要括号
正确写法:
let arr = ['red', 'green']
arr.push = ('blue')
对象
// phone 手机对象
let phone = {
size = 6.1
play = function () {
console.log('走起,吃鸡')
}
}
分析错误:
对象是有属性和方法组成,属性名和属性值,
方法名和函数之间都是冒号隔开,并且属性和方法之间需要有逗号隔开
正确写法:
let phone = {
size = 6.1,
play = function () {
console.log('走起,吃鸡')
}
}
遍历对象
let obj = {
uname: '小明',
age: 18,
sex: '男',
height: 200,
}
// 遍历obj对象,取出对象的属性名和属性值
for (let k in obj) {
console.log(k)
console.log(obj.k)
}
分析错误:在for…in 语法中,对象的属性值需要通过 中括号语法才能取出对象的属性值***
正确写法:
let obj = {
uname: '小明',
age: 18,
sex: '男',
height: 200,
}
// 遍历obj对象,取出对象的属性名和属性值
for (let k in obj) {
console.log(k)
console.log(obj.[k])
}