JavaScript的学习
JavaScript简介
- JavaScript 是 web 开发者必学的三种语言之一:
- HTML 定义网页的内容
- CSS 规定网页的布局
- JavaScript 对网页行为进行编程
- JavaScript能够改变 HTML 内容
- 通过getElementById()
eg:document.getElementById("demo").innerHTML = "Hello JavaScript";
或者document.getElementById("demo").innerHTML = 'Hello JavaScript';
(单引号双引号皆可)
- JavaScript能够改变 HTML 属性
通过改变 标签的 src 属性(source)可以改变一张 HTML 图像 - JavaScript 能够改变 HTML 样式 (CSS)
eg:document.getElementById("demo").style.fontSize = "25px";
- JavaScript 能够隐藏 HTML 元素
eg:document.getElementById("demo").style.display="none";
JavaScript示例
- 代码段:
<!DOCTYPE html>
<html>
<body>
<h2>我的第一段 JavaScript</h2>
<button type="button"
onclick="document.getElementById('demo').innerHTML = Date()">
点击这里来显示日期和时间
</button>
<p id="demo"></p>
</body>
</html>
- 效果图:
点击方框时会显示系统的时间;
课堂学习内容1
Javascript | |
---|---|
一种面向对象的脚本语言 | 用于对客户端应用程序和其他应用程序中的对象进行编程访问 |
特点 | 寄生(可以改变对象本身的形式和内容,特别适合二次编程) |
功能 | 可以使静态网页转变为动态网页 |
软件基础 | JavaScript引擎->浏览器 |
编程技术 | 用户点击->click事件发生->事件处理器执行->网页更新 |
对比 | 图源通过html来写,用js写交互行为(对事件处理的事件处理器) |
核心:在事件处理器用js来操作HTML DOM1
课堂学习内容2
链接到一个js文件
<script src = "filename" type="text/javascript"></script>
例:<script src = "example.js" type="text/javascript"></script>
- 标签要放在html页的头部;
- 脚本代码单独存放在一个后缀为 .js 的文件;
注释
- 和c++/c的注释方法一样;
声明
弹出对话框
alert("message");//弹出信息
alert("IE6 detedted.");
confirm();//返回真或者假
prompt();//返回用户输入的字符串
变量和类型
var name = expression;
例:
var clientName = "James";
var age = 32;
var weight = 127.4;
- 弱数据类型:无需声明它的数据类型,通过所赋的值来确定它的数据类型,也可以通过改变数值改变数据类型;(大小写敏感)
- 数据类型:number(包含所有数字类型), boolean, string, array, object, function, null, undefined
- 通过typeof来找到变量的数据类型
number类型
- 可以进行的操作:
- -* /% ++ --= += -= * /= %=+*=
string类型(important)
var s = "James Alan";
var fName = s.substring(0, s.index(" "));//取空格之前的字符
var length = s.length;
var S2 = 'Connie Client';
- 包含的操作:
- charAt, charCodeAt, fromCharCode, indexOf,lastIndexOf, replace, split, substring,toLowerCase,toUpperCase;
- 使用**’+’**连接两个字符串;
- parseInt;
Immutable vs. mutable
- js字符串不可改变:变量赋值为字符串后,除非重新赋值,其值不变。
var str = "Hello";
str[0] = "W";
alert(str);//"Hello"
boolean类型
- false: 0, 0.0, NaN, “”, null, and undefined;
- true:anything else;
- 将一个数值转换为boolean类型
var boolValue = Boolean(otherValue);
var boolValue = !!(otherValue);
特殊的值
- NaN: not a number (only returned by the isNaN() function) ;
- undefined : has not been declared, does not exist;
- null : exists, but was specifically assigned an null value ;
逻辑操作符
分别为:>< >= <= &&|| !== != === !==
=== 和 !== 是两者严格相等为真
NaN == NaN 和 NaN === NaN 的结果都为假
变量的作用域
- 全局变量
var a = 2;//全局变量
function scope(){
alert(a);
a = 2 * 2;
b = 3;//隐式变量声明
var c = 5;//局部变量
//这里a为4,b为3,c为5
}
scope();//这里a为4,b为3,c为undefined
- 局部变量
- 慎用全局变量(破坏了模块的封装)
数组
var name = [];//空数组
var name = [value,value,……,value];
name[index] = value;
- 自动增加大小;
- 可以存放不同类型的元素;
- 数组的操作:
- 注:string类型经过split分割为一个数组;
- eval函数能够动态执行源代码,必须慎用;
eval("3 + 2 - 5 * 0");//5
var str = "Hello";
eval("str = str + ' World!'");
eval(alert(str));//弹出'Hello World!'
DOM(文档对象模型)
DOM element
- 页面上每一个元素都有一个相应的DOM对象;
- 访问和修改DOM对象的属性:objectName.attributeName;例:
id = "example"
,其中id为property,example为attribute; - innerHTML和textContent的比较:innerHTML会对输入进入解析;
- 通过DOM元素的value property改变或者获取显示内容,针对文本框,各种按钮,不能使用 innerHTML和textContent 的属性;
- 调整风格:
注:DOM style property是一个带单位的字符串;
DOM tree
- 改变结构,在上面找到要改变的操作;
- DOM Node:
- document node为根节点;
- element node
- text node:空白会成为一个text node
- attribute node
- comment node
3. 树是一个连通图,理论上可以从其中一个位置,到达其他任意一个位置;
4. 改变结构:新建节点
- createElement
- createTextNode
DOM & BOM Object
- BOM:Browser objects;
事驱动的程序设计
- 添加\移除事件处理器
- addEventListener
- removeEventListener
(HTML/XHTML的文档对象模型) ↩︎