1. JavaScript概述
Javascript是基于对象和事件驱动的脚本语言,主要应用在客户端
- 基于对象:提供好了很多对象,可以直接拿过来使用
- 事件驱动:html做网站静态效果,javascript动态效果
- 客户端:专门指的是浏览器
JavaScript的特点:
- 交互性:信息的动态交互
- 安全性:不可以直接访问本地硬盘
- 跨平台性:只要是可以解析js的浏览器都可以执行,和平台无关
javascript和java的区别(雷锋和雷峰塔)
- java是sun公司,现在oracle;js是网景公司
- JavaScript 是基于对象的,java是面向对象
- java是强类型的语言,js是弱类型的语言
- 比如java里面 int i = “10”;
- js: var i = 10; var m = “10”;
- JavaScript只需解析就可以执行,而java需要先编译成字节码文件,再执行
2. JavaScript与java不同
- Netscape公司开发的一种脚本语言 ,并且可在所有主要的浏览器中运行 :IE、Firefox、Chorme、Opera
- JavaScript 是基于对象的,java是面向对象
- JavaScript只需解析就可以执行,而java需要先编译成字节码文件,再执行
- JavaScript 是一种弱类型语言,java是强类型语言
ECMA-262 是正式的 JavaScript 标准。这个标准基于 JavaScript (Netscape) 和 JScript (Microsoft)。
Netscape (Navigator 2.0) 的 Brendan Eich 发明了这门语言,从 1996 年开始,已经出现在所有的 Netscape 和 Microsoft 浏览器中。
ECMA-262 的开发始于 1996 年,在 1997 年 7 月,ECMA 会员大会采纳了它的首个版本。
在 1998 年,该标准成为了国际 ISO 标准 (ISO/IEC 16262)。这个标准仍然处于发展之中。
3. JavaScript历史
在早期浏览器竞争的背景下,各浏览器厂商标新立异,独树一帜,JavaScript 脚本编写者们苦不堪言
W3C、ECMA 的不懈努力下,随着Microsoft 的 IE浏览器的不断改进,一个遵奉标准、笃行规范的 Web 新世界展现在世人面前
4. JavaScript语言组成
一个完整 JavaScript实现由以下3个部分组成
- 核心(ECMAScript),ECMA:欧洲计算机协会,由ECMA组织制定的js的语法,语句..
- 文档对象模型(DOM:Document Object Model)
- 浏览器对象模型(BOM:Broswer Object Model)
5. js和html的结合方式
第一种:使用一个标签
<script type="text/javascript"> js代码; </script>
第二种:使用script标签,引入一个外部的js文件
创建一个js文件,写js代码
<script type="text/javascript" src="1.js"></script>
使用第二种方式时候,就不要在script标签里面写js代码了,不会执行。
6. JavaScript的基础
6.1 JavaScript的变量
JavaScript是弱变量类型的语言。弱变量类型:定义变量的时候变量没有具体的类型,当变量被赋值的时候变量才会有具体的数据类型
// 定义变量 在JavaScript中定义所有的变量都使用var.
var a = 1;
var b = "abc";
var c = true;
var d = 'bcd';
// 如果了解变量的具体类型 那么可以使用 typeof
alert(typeof(a)); // output number
alert(typeof(b)); // output string
alert(typeof(c)); // output boolean
alert(typeof(d)); // output string
// 在JavaScript中 定义字符串 可以使用单引号 或者 双引号
6.2 JavaScript的数据类型
6.2.1 JavaScript和Java一样存在两种数据类型
- 原始值 (存储在栈Stack中简单数据)
- 引用值 (存储在堆heap中对象)
6.2.2 5种原始数据类型
- Undefined、Null、Boolean、Number 和 String
- JavaScript中字符串是原始数据类型
6.2.3 通过typeof运算符,查看变量类型
所有引用类型都是object
6.2.4 通过instanceof 运算符解决typeof对象类型判断问题
在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 “object”。ECMAScript 引入了另一个 Java 运算符 instanceof 来解决这个问题。instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型。与 typeof 方法不同的是,instanceof 方法要求开发者明确地确认对象为某特定类型。例如:
var oStringObject = new String("hello world");
alert(oStringObject instanceof String); //输出 "true"
6.2.5 区分 undefined 和 null
- undefined:变量定义了未初始化或访问对象不存在属性
- null:表示访问的对象不存在
//var div1 = document.getElementById("div1111");
//alert(div1); // null
var a;
if(a == undefined){
alert("a没有初始化");
}
//var div1 = document.getElementById("div1")
//alert(div1.href);
6.3 JavaScript的语句
条件语句
两种:if语句 和 switch语句
if语句:
var i = 6;
if(i>5){
alert("i>5");
}else{
alert("i<=5");
}
switch语句
var a = "2";
// Java中switch作用在什么上?
// 在Java中 switch() 可以 byte short char int 不可以 long String类型也是不可以 但是在JDK1.7中String类型可以作用在switch上.
// 在JavaScript中 switch是否可以作用在string上. string在JavaScript中是原始数据类型.
switch(a){
case "1":
alert("a==1");
break;
case "2":
alert("a==2");
break;
case "3":
alert("a==3");
break;
default:
alert("a是其他值");
}
if语句比较的时候 全等和非全等(=== !==)
var a = "98";
// 与Java不一样的地方. == 比较的值. 而且可以进行简单的类型转换.
// 在JavaScript中有一个 === 全等. (值相等 而且 类型也要相等.)
if(a === 98){
alert("a等于98");
}else{
alert("a不等于98");
}
循环语句
for语句
var arr = [11,22,33,44];
/*
for(var i = 0;i<arr.length;i++){
alert(arr[i]);
}
*/
while语句
var i = 0;
while(i<arr.length){
alert(arr[i]);
i++;
}
dowhile
var i = 0;
do{
alert(arr[i]);
i++;
}while(i<arr.length);
for in
for(var i in arr){
alert(arr[i]);
}
6.4 JavaScript中的数组
// 定义数组.
var arr1 = []; // 定义一个空数组
var arr2 = [11,22,33,44]; // 定义了一个有元素的数组.
var arr3 = [11,true,'abc']; // 定义一个数组 存入不同的数据类型. 但是一般不建议这样使用.
/*
for(var i = 0;i<arr3.length;i++){
alert(arr3[i]);
}
*/
// 定义数组 使用对象定义
var a