1,javaScript介绍
JavaScript 是互联网上最流行的脚本语言,插入 HTML 页面后,可由所有的现代浏览器执行。
JavaScript和Java的关系?它们的关系就像雷锋和雷峰塔的关系一样,没有一点关系,只是当时java比较火,为了蹭热度才取名为JavaScript。
2,javaScript基本用法
HTML 中的脚本必须位于 标签之间。
脚本可被放置在 HTML 页面的
和 部分中。如下
菜鸟教程(runoob.com)
我的 Web 页面
一个段落。
3,JavaScript 数据类型
字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined)。
3.1,字符串是存储字符(比如 "Bill Gates")的变量。 字符串可以是引号中的任意文本。您可以使用单引号或双引号:
var carname = "Volvo XC60";
va rcarname = 'Volvo XC60';
var answer = 'He is called "Johnny"';
字符串常用的一些方法:
方法 | 描述 |
---|---|
charAt() | 返回指定索引位置的字符 |
indexOf() | 返回字符串中检索指定字符第一次出现的位置 |
lastIndexOf() | 返回字符串中检索指定字符最后一次出现的位置 |
match() | 找到一个或多个正则表达式的匹配 |
replace() | 替换与正则表达式匹配的子串 |
search() | 检索与正则表达式相匹配的值 |
split() | 把字符串分割为子字符串数组 |
substr() | 从起始索引号提取字符串中指定数目的字符 |
substring() | 提取字符串中两个指定的索引号之间的字符 |
toLowerCase() | 把字符串转换为小写 |
toString() | 返回字符串对象值 |
toUpperCase() | 把字符串转换为大写 |
trim() | 移除字符串首尾空白 |
valueOf() | 返回某个字符串对象的原始值 |
3.2,JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
下面的代码创建名为 cars 的数组:
或者 (condensed array):
3.5,对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
var person={firstname:"John", lastname:"Doe", id:5566};
对象属性有两种寻址方式:name=person.lastname; name=person["lastname"];
3.6 ,Undefined和null
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
4,JavaScript事件
下面是一些常见的HTML事件的列表:
事件 描述
onchange HTML 元素改变
onclick 用户点击 HTML 元素更多可以参考:http://www.runoob.com/jsref/dom-obj-event.html
5,JavaScript类型转换
常见把数字转换为字符串:
全局方法 String() 可以将数字转换为字符串:
String(x) // 将变量 x 转换为字符串并返回
String(123) // 将数字 123 转换为字符串并返回
String(100 + 23) // 将数字表达式转换为字符串并返回
" "+3 // 自动转换
把字符串转换为数字;全局方法 Number() 可以将字符串转换为数字:
Number("3.14") // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number("99 88") // 返回 NaN
6,一些容易出错的地方
在 JavaScript 程序中如果你在 if 条件语句中使用赋值运算符的等号 (=) 将会产生一个错误结果, 正确的方法是使用比较运算符的两个等号(==)。
if 条件语句返回 false (是我们预期的)因为 x 不等于 10:
if 条件语句返回 true (不是我们预期的)因为条件语句执行为 x 赋值 10,10 为 true:
if 条件语句返回 false (不是我们预期的)因为条件语句执行为 x 赋值 0,0 为 false:
在严格的比较运算中,=== 为恒等计算符,同时检查表达式的值与类型,以下 if 条件语句返回 false:
这种错误经常会在 switch 语句中出现,switch 语句会使用恒等计算符(===)进行比较:
以下实例会执行 alert 弹窗:
以下实例由于类型不一致不会执行 alert 弹窗:
JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储。
所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定:
为解决以上问题,可以用整数的乘除法来解决:
实例
7,DOM文档对象模型(Document Object Model)
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。
var x=document.getElementById("intro");
还有通过签名:var y=x.getElementsByTagName("p");
7.1,如何改变 HTML 元素的内容 (innerHTML)
一,改变输出流,在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。
例如:
二,改变HTML内容,改 HTML 内容的最简单的方法时使用 innerHTML 属性。
例如:
三,改变HTML的属性
如需改变 HTML 元素的属性,请使用这个语法:document.getElementById(id).attribute=新属性值;
的属性:
7.2,改变HTML样式
如需改变 HTML 元素的样式,请使用这个语法:
下面的例子会改变
元素的样式:
7.3,增加监听addEventListener()方法:
第一个参数是事件的类型 (如 "click" 或 "mousedown").
第二个参数是事件触发后调用的函数。
第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。
注意:不要使用 "on" 前缀。 例如,使用 "click" ,而不是使用 "onclick"7.4,创建新的元素
如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。
实例:
这是一个段落。
这是另一个段落。
这段代码创建新的
元素:
如需向
元素添加文本,您必须首先创建文本节点。这段代码创建了一个文本节点:
然后您必须向
元素追加这个文本节点:
最后您必须向一个已有的元素追加这个新元素。
这段代码找到一个已有的元素:
以下代码在已存在的元素后添加新元素:
如要删除元素 与上面类似:parent.removeChild(child);
如果能够在不引用父元素的情况下删除某个元素,就太好了。
不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。
这是常用的解决方案:找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素:
通过使用 JavaScript,我们有能力作到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。
在 JavaScritp 中使用计时事件是很容易的,两个关键方法是:
例如:显示当前时间
然后你可以使用clearInterval() 方法来停止执行。
var myVar;
function myFunction()
{
myVar=setTimeout(function(){alert("Hello")},3000);
}
function myStopFunction()
{
clearTimeout(myVar);
}
9,其他
变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。
"use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。
"use strict" 的目的是指定代码在严格条件下执行。
"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。