JavaScript 是如何工作的
JavaScript 代码的作用:
浏览器加载网页后,运行的 JavaScript 代码 可能会响应用户动作,更新或改变网页,与 web 服务通信。
即使文档更像一个应用
JavaScript 代码是如何
-
创建 HTML markup 和 JavaScript code 两文件分别命名为 index.html 和 index.js (或者同一个html 文件里)
-
浏览器加载你的网页, 从上到下解析文档内容。
遇到 JavaScript 代码,解析代码,检查语法错误,然后执行代码。
同时,浏览器还会创建内部的DOM 结构模型
- JavaScript 继续执行,使用 DOM 检查网页,改变网页,从网页获取事件,让浏览器从 web 服务器获取其他数据。
JavaScript 语法
- 表达式
创建变量, 赋值, 加运算,计算, 内置函数
var
- 循环
重复执行表达式,多次
while
- 条件
根据条件执行语句
if...else
- 声明变量
- 在 JavaScrip,变量值可以是整型, 浮点型,布尔型, 字符串, 表达式的值, 内置函数的值, null.
- 变量是个存放数据的容器,变量声明时不需要类型type.
- 声明的变量的值可以随时改变, 甚至可以变成其他类型的值, 但是由字符串变成数值型可能引起混乱
举例代码:
var temp= 7.8;
var beanCounter=4;
var reallyCool = true;
var motto = "I Rule";
temp= (temp-32)*5/9;
motto =motto + "and so do you!";
var pos=Math.random();
while ( beanCounter > 0 ) {
ptocessBeans();
beanCounter = beanCounter -1 ;
}
if (isReallyCool ) {
invite = "You're invited! "
} else {
invite = "Sorry, we're at capacity. "
}
- 变量是个放值的容器, 变量声明不需要类型,会自行判断
- 变量表示没有值用 null , 没有赋值时类型为 undefined
语法:
- 语句以分号( ; )结尾;
- 单行注释,用符号
//
; - 自动忽略空格;
- 字符串用双引号括起来
" "
. var greeting="hello"
- 布尔型 true 和false, 不用引号
rockin =true
- 变量声明的时候,不必赋值.
var greeting
- 变量声明时使用
var
和变量名
, 不需要类型 type - var width; width , 代码被执行后,width 被赋值为 undefined。
- var width = null; 给变量 width 赋空值
变量命名规则
- 用 字母,下划线,美元符开头(letter, underscore, dollar sign)
不能使用数字开头
除去 dollar 符和下划线,其他的符号开头命名不允许
do this
var thisIsName;
var _myVar;
var $myAnotherVar;
not allowed
错误 var %entage;
错误 var ~approx;
错误 var 3zip ;
- 第一个字符后面可以接任何数量的字母,数字,下划线,dollar 符
名称中间不允许有空格
不允许有加减号(+ / —),容易引起语法困惑
错误 var zip code;
错误 var first+name;
错误 var last—name;
-
不能使用预留字
-
命名要有意义,有可读性
-
使用驼峰命名法
-
没有特别的情况,避免使用 $ 或 _ 开头命名
a. $ 开头的变量通常是为 javaScript 库预留的变量
b. 一些作者因为一些惯例使用 _ 开头命名变量。
他们不被广泛使用,没有特别好的原因,不推荐使用。
表达式
- 数值型表达式
计算结果是 numbers 的表达式
(9/5)* tempC +32
x-1
Math.random() * 10
2.12+3.5
- 布尔型表达式
计算结果是 boolean values (true 或 false)
2>3
startTime > now
tempF <75
pet ==“dog”
level== 4
- 字符串型表达式
计算结果是字符串
"super" + "cali" + youKnowWho
p.innerHTML
phoneNumber.substring(0, 3)
- 其他类型的表达式
function (){ ... }
document.getElementById("pink")
new Array(10)
JavaScript 会根据需要改变变量的类型
message = 2 + " if by sea"
以上表达式,会把 2 转化成 字符串 "2" , 因为字符串不能转化成数值型
value = 2 * 3.1
以上表达式,会把 2 转化成浮点型
循环
-
while
- initialize
- do conditional test
- execute code block while condition test is true
- update conditonal test
- repeat 2, 3, 4
- end the loop and continue the following code after loop condition fails
var scoops =10; // 初始化
while(scoops > 0) { // scoops > 0 条件判断
alert("More icecream ! ")
scoops= scoops - 1; // 更新条件
}
alert("life without ice cream isn't the same")
- for
for(initialize; condition-test; update-condition-test ){}
for (scoops=10; scoops>0; scoops--){
alert("There's more ice cream! ");
}
alert("life without ice cream isn't the same")
两种循环方式可以做同样的事情。但是,
for 循环多用于固定数目的迭代循环
while 循环多用于满足某个条件才去循环执行
In general you can do the same things with a for or while; however , as you can see with the ice cream example, the for loop is a little more compact, and while loop is more readable.
In general
for loops get used more for iterating over a fixed number of values
(say, over the items in a shopping cart)
while loops are used more to loop until a condition is met
(say, giving the user a test until he gets it right)
if ...else
make decisions
if (scoop>3) {
alert("sss")
}
if(scoop>8) {
alert("sss")
} else if (scoop<2) {
alert("xxx")
}
if () {
} else if () {
} else if() {
} else (
)
网友评论