JavaScript
涉及到的函数
- alert()
- prompt()
- confirm()
JavaScript 放置的位置
JavaScript 代码可以放置到任何地方,但仍有通用的模式123456789<!DOCTYPE html><html><head>... load JavaScript libraries here ...</head><body>... your JavaScript code typically goes at the end of body ...</body></html>
JavaScript 在同一文件中
12345<script>function surprise() {alert("Hello!");}</script>JavaScript 在其他文件中
1<script src="mycode.s"></script>在 mycode.js :
123function surprise() {alert("Hello!");}简单交互
这里有3个 JavaScript 弹出窗口
- alert()
- confirm()
- prompt()
显示信息 - alter()
- alert() 给用户显示文本1alert("Welcome!");
- alert() 给用户显示文本
做出选择 - confirm()
- confirm() 显示一个带有信息的弹出窗口,并带有 OK 和 Cancel 按钮12345678910<!DOCTYPE html><html><head><title>Example of confirm()</title><script>if (confirm("Want to go to Disneyland?"))document.location.href = "http://park.hongkongdisneyland.com";</script></head></html>
- confirm() 显示一个带有信息的弹出窗口,并带有 OK 和 Cancel 按钮
简单的文本输入 - prompt()
为获取用户的输入,你可以使用 prompt() 如:
12var user_name; /Create a variableuser_name = prompt("What is your name?");不是必须在使用变量前创建它,但提前创建变量是一个好习惯。
示例:
123456789101112<!DOCTYPE html><html><head><title>Example of prompt()</title><script>var user_name;user_name=prompt("What is your name?");document.write("Welcome to my page "+ user_name + "!");</script></head></html>
变量
- 涉及到的内容
- var
- typeof
- 数字
- 字符串
- 布尔类型
- 其他雷人,如,对象
数字
- JavaScript 只有一种数字类型
可以使用小数或整数
12var number1 = 34.289;var number = 100;可以使用科学计数法
12var big_number = 123e5; //12300000var small_number = 123e-5; //0.00123
字符串
你可以使用单引号或双引号
12var name = "David";var title = 'Professor';你可以在字符串中使用引号,只要它和最外面的引号不冲突
1var message = "It's alright";
布尔值
布尔值只可以是 true 或 false
12var condition1 = true;var condition2 = false;不要把布尔值和字符串混淆
12var myBool = true; //布尔值var myString = "true"; //字符串
变量类型可以改变
如果你执行如下操作12var storage = "David";storage = 98;变量类型会立即改变。
使用 typeof
你可以使用 typeof 操作检查变量的类型12345678910111213<!DOCTYPE html><html><head><title>Variable Type Example</title></head><body?<script>alert ( '"John" is type: ' + typeof "John" + "\n\n"+ "3.14 is type" + typeof 3.14 + "\n\n"+ "false is type: " + typeof false)</script></body></html>常用修改
Code | Quicker Typing |
---|---|
count = count + 1 | count++ |
count = count - 1 | count– |
count = count + 10 | count += 10 |
hello = hello + “!” | hello += “!” |
marks = marks - 20 | marks -= 20 |
pigs = pigs * 5 | pigs *= 5 |
cakes = cakes /students | cakes /= students |
- 类型转换
Function | Meaning
parseInt() | 转换为整数
parseFloat() | 转换为浮点数
String() | 转换为字符串
事件和函数
- 涉及到的内容
- 事件
- onload
- 函数
- function
- return
- 事件
事件 EVENT
事件指一些事情发生,如单机、移动鼠标和敲击键盘。你可以通过编写代码扩展这些事件发生后执行的动作。
ONLOAD EVENT
onload
当对象被加载后出发。123<body onload="alert('Hello!')">... the main web page content goes there ...</body>示例
12345678<!DOCTYPE html><html><body onload="alert('Hello!')"><p>A message is shown as soon as the page is loaded.</p></body></html>你可以不受限制地执行代码
1234567891011<!DOCTYPE html><html><body onload="alert('Hello!');alert('We start soon..');prompt('Exicited!') "><p>3 popup windows are shown as soon as the page is loaded.</p></body></html></html>函数
函数是一组代码,其基本结构如下:123fucntion do_something {... codes go there ...}函数的返回值如下:
1do_something()示例
123456789101112131415<!DOCTYPE html><html><head><title>Example of funcion</title><script>function greet_the_user(){alert('Hello!');alert('We start soon...');prompt('Excited!');}</script></head><body onload="greet_the_user()"></body></html>函数参数
你可以将参数传递给函数:
123function purchase(cats){... code here uses cats ...}执行方法如下:
1purchase(10)函数的相应
你可以从函数中得到响应:
1234function do_something(){... code here stores something in answer ...return answer;}使用方法如下:
1result = do_something();示例
|
|
递归函数
函数可以调用其自身
123function do_something(control_value) {... code here calls do_something() ...}调用方式如下:
1result = do_something(10)示例
1234567891011121314<!DOCTYPE html><html><body><script>alert("It's my " + build_great(5) + "grandmother!");function build_great( depth ) {if (depth > 0)return "great " + build_great( depth - 1 );elsereturn "";}</script></body></html>
选择
while 循环
全局变量与局部变量
逻辑运算
数组
随机数
示例项目
for 循环
- 涉及到的内容
- for
- for … in
- for … of
for
for
明确指明了开始和结束的值for
非常有利于处理一组数据data_structure.length 告诉我们 data_structure 里包含多少个元素
示例:
12345678910111213<html><head><script>var continents = ["Australia", "Africa", "Antarctica", "Eurasia", "America"];var response, count = 0;for(var index=0; index< continents.length; index++) {response = confirm("Have you benn to" + continents[index] + "?");if(response) count++;}alert("You have benn to" + count + " continents!");</script></head></html>
for … in
for ... in
提供每个元素的索引,示例:12345678910111213<html><head><script>var continents = ["Australia", "Africa", "Antarctica", "Eurasia", "America"];var response, count = 0;for(var index in continents) {response = confirm("Have you benn to" + continents[index] + "?");if(response) count++;}alert("You have benn to" + count + " continents!");</script></head></html>1234567891011<!DOCTYPE html><html><title>Example of for in</title><script>var response, count=0;var onesPerson = { initials:"DR", age:40, job:"Professor"};for (var property in onePerson) {alert(property + "=" + onePerson[property]);}</script></html>for … of
for ... of
提供每个元素,示例:12345678910111213<html><head><script>var continents = ["Australia", "Africa", "Antarctica", "Eurasia", "America"];var response, count = 0;for(var continent of continents) {response = confirm("Have you benn to" + continent + "?");if(response) count++;}alert("You have benn to" + count + " continents!");</script></head></html>
for 中的3个参数可以省略,这会产生一个无线循环,如:
123for(;;) {alert("Welcome!");}这样做是可以的
1234var number=1;for ( ; number <= 12; number++) {alert(number + " times 9 = ", number*9);}这样也行
12345for (var rabbits=2, gneration=1;generation<=12;generation++, rabbits *= 2 ){alert("gen" + generation + " total:" + rabbits)}
循环控制
- break
- continue
更多数组相关函数
- 涉及到的内容
- sort()
- indexOf()
- slice()
- reverse()
- lastIndexOf()
- splice()
函数数组
涉及到的函数
- foreach()
- map()
FOREACH()
你可以通过 for / while 循环变量每个元素
1234var pets = ["Dog", "Cat", "Hamster"];for (var i=0; i<pets.length; i++) {alert(pets[i]);}你也可是使用array.forEach函数
123var pets = ["Dog", "Cat", "Hamster"];pets.forEach(alert);// This show 3 separate alerts可以按一下形式理解forEach():
12345678function forEach(theArray, fn){for(var i=0; i<theArray.length; i++){for(var i=0; i < theArray.length; i++) {fn(theArray[i], i, theArray);}}}对应的你的函数形式应该如下,如果你需要所有的3个参数:
1function yourFunction(element, index, array) {}示例
123456789101112<!DOCTYPE html><html><body><script>var numbers = [1, 2, 3, 4, 5];numbers.forEach( function(elem, idx, arr) {arr[idx] = elem * elem;});alert(numbers); // This shows [1, 4, 9, 15, 25];</script></body></html>
MAP()
map(函数)将函数数组中的每一个执行结果保持起来.你可以这样理解map():
1234567function map(theArray, fn) {var results = [];for(var i = 0; i < theArray.length; i++) {results.push(fn(theArray[i], i, theArray));}return results;}示例
1234567891011<!DOCTYPE html><html><body><script>var square = function(e1) { return e1 * e1; )var numbers = [1, 2, 3, 4, 5];var results = numbers.map(square);alert(results); //This shows [1, 4, 9, 16, 25];</script></body></html>