title | slug |
---|---|
解决 JavaSctript 代码的常见问题 |
Learn/JavaScript/Howto |
{{LearnSidebar}}
以下链接指向撰写 JavaScript 代码时可能遇见的问题。
如果你的代码不工作或浏览器抱怨某些东西是未定义的,请检查你是否正确拼写了所有的变量名称,函数名称等。
导致问题的一些常见的内置浏览器函数有:
正确 | 错误 |
---|---|
getElementsByTagName() |
getElementbyTagName() |
getElementsByName() |
getElementByName() |
getElementsByClassName() |
getElementByClassName() |
getElementById() |
getElementsById() |
必须确保没有错误地放置分号,例如:
正确 | 错误 |
---|---|
elem.style.color = 'red'; |
elem.style.color = 'red;' |
函数有很多容易出错的地方。
最常见的错误之一是函数被声明了却没有被调用。例如:
function myFunction() {
alert("This is my function.");
}
这个函数不会执行,除非你调用它,例如:
myFunction();
记住,函数拥有自己的作用域——你不能从函数外部访问一个函数内的变量值,除非你在全局声明了该变量(即不在任何函数内),或者从函数外部获得它的返回值。
还要记住,当你向一个函数外部返回一个值时,JavaScript 解释器会退出这个函数——在 return 语句之后,不会执行任何代码。
事实上,如果你在返回语句之后有代码,某些浏览器(如 Firefox)会在开发人员控制台中显示出一条错误消息。Firefox 在返回语句后会给你“无法运行到的代码”的提示。
当你在 JavaScript 中正常赋值时,使用等号:
const myNumber = 0;
但是在对象中,需要小心地使用正确的语法标签。你需要使用花括号来包裹一个对象,冒号来分隔成员名称和值,并用逗号来分隔每个成员,例如:
const myObject = {
name: "Chris",
age: 38,
};
- 在 web 开发中需要处理什么样的数字值?
- JavaScript 如何处理基本的数学运算?
- 什么是运算符的优先级,如何在 JavaScript 中处理优先级问题?
- 如何在 JavaScript 中增加或减少值?
- 如何在 JavaScript 中比较值的大小?(例如,查看哪个值更大,或检查一个值是否与另外一个值相等)
- 如何在 JavaScript 中创建字符串?
- 我需要使用单引号,还是双引号?
- 我如何转义字符串中的字符?
- 我如何将字符串拼接在一起?
- 可以将字符串和数字拼接在一起吗?
- 如何得到字符串的长度?
- 如何得到字符串某个特定位置的字符?
- 如何从给定字符串中找到并提取特定子字符串?
- 如何改变字符串的大小写?
- 如何将特定子字符串替换为另外一个?
有关 JavaScript 调试的更多内容,请查阅处理 JavaScript 常见问题页面,也可以查看其他常见错误的描述。
- 如何根据变量的值或其他条件执行不同代码块?
- 如何使用 if ...else 语句?
- 如何将决策的代码块嵌套在其他代码块之中?
- 如何在 JavaScript 中使用与、或、非运算符?
- 如何方便地处理单一条件产生的多重选择?
- 如何使用三元运算符快速作出基于真假的二重选择?
- 如何找到浏览器中的内置函数?
- 函数和方法有什么不同?
- 如何创建自己的函数?
- 如何运行(或调用)函数?
- 什么是匿名函数?
- 如何在调用函数时指定参数?
- 什么是函数作用域?
- 什么是函数返回值,如何使用它们?
- 如何创建对象?
- 什么是点表示法?
- 什么是括号表示法?
- 如何获取和设置对象的方法和属性?
- 对象中的
this
是什么? - 什么是面向对象编程?
- 什么是构造器和实例,如何创建它们?
- 在 JavaScript 中创建对象的方法都有哪些?