1. JavaScript简介
- 什么是JavaScript?
JavaScript 是⼀种客户端脚本语⾔(脚本语⾔是⼀种轻量级的编程语⾔)。
JavaScript 通常被直接嵌⼊ HTML ⻚⾯,由浏览器解释执⾏
JavaScript 是⼀种解释性语⾔(就是说,代码执⾏不进⾏预编译)。
特点:弱类型和基于对象。(因为⾯向对象需要具有封装、继承、多态的特征)
JavaScript语⾔中包含三个核⼼:ECMAScript基本语法、DOM、BOM
2. JavaScript使⽤⽅法
可以像添加CSS那样将 JavaScript 添加到 HTML ⻚⾯中。CSS 使⽤ 元素链接外部样式
表,使⽤
- 内部JavaScript: 使⽤ 标签
属性:
charset(可选)字符集设置、
defer(可选执⾏顺序)值:defer、
language(已废除)、
src(可选)使⽤外部的js脚本⽂件
type(必选)类型:值:text/javascript
<script type="text/javascript">
<!--
javaScript语⾔
//-->
</script>
- 外部 JavaScript:
使⽤外部导⼊js会使代码更加有序,更易于复⽤,且没有了脚本的混合,HTML也会更加易
读。
<script type="text/javascript" src="my.js"></script>
- 内联JavaScript处理器:
就是将js代码写⼊html代码中,如在html标签的事件中或超级链接⾥
<button onclick="javaScript语⾔"></button>
<a href="javascript:alert('aa');alert('bb')">点击</a>
3. JavaScript基础语法
3.1 JavaScript的输出:
JavaScript 没有任何直接打印或者输出的函数。
若有显示数据可以通过下⾯不同的⽅式来输出:
window.alert() 弹出警告框
document.write() ⽅法将内容写到 HTML ⽂档中
innerHTML 写⼊到 HTML 元素
console.log() 写⼊到浏览器的控制台
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript实例</title>
</head>
<body>
<h3>测试JavaScript的输出</h3>
<div id="did">div层</div>
</body>
<script>
//弹出⼀个信息提示框
window.alert("Hello JavaScript!");
//输出到浏览器⻚⾯中
document.write("这个是⻚⾯中的输出");
//通过写⼊HTML标签中,完成⻚⾯中的输出
document.getElementById('did').innerHTML="div层中的输出";
//控制台上的输出
console.log("控制台上的输出");
</script>
</html>
3.2 变量
什么是变量
变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
为什么要使⽤变量
使⽤变量可以⽅便的获取或者修改内存中的数据
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript实例</title>
</head>
<body>
<h3>测试JavaScript的输出</h3>
<div id="did">div层</div>
</body>
<script>
//弹出⼀个信息提示框
window.alert("Hello JavaScript!");
//输出到浏览器⻚⾯中
document.write("这个是⻚⾯中的输出");
//通过写⼊HTML标签中,完成⻚⾯中的输出
document.getElementById('did').innerHTML="div层中的输出";
//控制台上的输出
console.log("控制台上的输出");
</script>
</html>
如何使⽤变量 使⽤var声明变
```var name;
变量的赋值
var name;
name = "zhangsan";
同时声明多个变量
var name,age,sex;
name = 'lisi';
age = 20;
sex = "man"
同时声明多个变量并赋值
var name = 'wangwu', age = 25;
3.3 变量的命名规则和规范
规则 - 必须遵守的,不遵守会报错
由字⺟、数字、下划线、$符号组成,不能以数字开头
不能是关键字和保留字,例如:for、 if、while。
区分⼤⼩写
规范 - 建议遵守的,不遵守不会报错
变量名必须有意义
遵守驼峰命名法。⾸字⺟⼩写,后⾯单词的⾸字⺟需要⼤写。例如:userName、
userPassword
```html
```html
## 3.4 语句与注释
语句:
⼀般程序中的语句是由表达式加分号构成 ; 组成。(js中的每条语句之间的分割符可以是回⻋
换⾏也可以是";"分号(推荐))
⽽表达式的种类很多:
如:算术表达式、赋值表达式、关系表达式、逻辑表达式等等...
也可以是⼀个函数、⽅法的调⽤
脚本注释: // 单⾏注释 和 /* 多⾏注释 */
单⾏注释
单⾏注释以 // 开头。
任何位于 // 与⾏末之间的⽂本都会被 JavaScript 忽略(不会执⾏)。
多⾏注释
多⾏注释以 /* 开头,以 */ 结尾。
任何位于 /* 和 */ 之间的⽂本都会被 JavaScript 忽略。
注释的⽬的:
为程序添加辅助说明,便于阅读理解。
注释掉临时不需要执⾏的代码、便于调试、排错。
4. JavaScript数据类型
JavaScript中数据类型:
值类型(基本类型):
字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、
Symbol。
注意:Symbol 是 ES6 引⼊了⼀种新的原始数据类型,表示独⼀⽆⼆的值。
引⽤数据类型: 对象(Object)、数组(Array)、函数(Function)。
//我们使⽤typeof操作符获取基本数据类型
//Undefined 这个值表示变量不含有值
console.log(typeof a); //undefined 未定义的
var a = 10;
console.log(typeof a); //number
a = 3.14
console.log(typeof a); //number
a = 'zhangsan'
console.log(typeof a); //string
a = true
console.log(typeof a); //boolean
//可以通过将变量的值设置为 null 来清空变量
a = null
console.log(typeof a); //object
console.log(a); //null
a = [10,20,30];
//或 a = new Array(10,20,30);
console.log(typeof a); //object
console.log(a instanceof Array); //true
a = function(){} //定义空⽩函数
console.log(typeof a); //function
console.log(a instanceof Function); //true
/*
//整数的进制的输出
console.log(10); //输出⼗进制数的值
console.log(0b10); //输出⼆进制数10的值
typeof 操作符获取⼀个变量的类型,返回结果如下:
undefined - 如果变量是 Undefined 类型的
boolean - 如果变量是 Boolean 类型的
number - 如果变量是 Number 类型的 (整数、浮点数)
string - 如果变量是 String 类型的 (采⽤""、 '')
object - 如果变量是⼀种引⽤类型或 Null 类型的 如: new Array()/ new String()...
function -- 函数类型
undefined 和 null 的区别
null 和 undefined 的值相等,但类型不等:
console.log(0o10); //输出⼋进制数10的值
console.log(0x10); //输出⼗六进制数10的值
//⼗进制转换其他进制
var x = 110;
x.toString(2)//转为2进制
x.toString(8)//转为8进制
x.toString(16)//转为16进制
//其他进制转⼗进制
var x = "110"//这是⼀个⼆进制的字符串表示
parseInt(x, 2)//把这个字符串当做⼆进制, 转为⼗进制
var x = "70"//这是⼀个⼋进制的字符串表示
parseInt(x, 8)//把这个字符串当做⼋进制, 转为⼗进制
var x = "ff"//这是⼀个⼗六进制的字符串表示
parseInt(x, 16)//把这个字符串当做⼗六进制, 转为⼗进制
*/
typeof "zhangsan" // 返回 string
typeof 3.14 // 返回 number
typeof NaN // 返回 number
typeof true // 返回 boolean
typeof [10,20,30,40] // 返回 object
typeof {name:'lisi', age:20} // 返回 object
typeof new Date() // 返回 object
typeof function(){} // 返回 function
typeof myCar // 返回 undefined (如果 myCar 没有声明)
typeof null // 返回 object
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
object引⽤类型 引⽤类型通常叫做类(class),也就是说,遇到引⽤值,所处理的就是对象。
Object 对象⾃身⽤处不⼤,不过在了解其他类之前,还是应该了解它。 因为 ECMAScript 中的
Object 对象与 Java 中的 java.lang.Object 相似, ECMAScript 中的所有对象都由这个对象继承⽽
来,Object 对象中的所有属性 和⽅法都会出现在其他对象中,所以理解了 Object 对象,就可以
更好地理解其他对象。
值类型理解:变量之间的互相赋值,是指开辟⼀块新的内存空间,将变量值赋给新变量保存到新开
辟的内存⾥⾯;之后两个变量的值变动互不影响,例如:
var a = 10; //开辟⼀块内存空间保存变量a的值“10”;
var b = a; //给变量 b 开辟⼀块新的内存空间,将 a 的值 “10” 赋值⼀份保存到新的内存⾥;
//a 和 b 的值以后⽆论如何变化,都不会影响到对⽅的值;
`引⽤类型理解:变量之间的互相赋值,只是指针的交换,⽽并⾮将对象(普通对象,函数对象,数
组对象)复制⼀份给新的变量,对象依然还是只有⼀个,只是多了⼀个指引。``
//需要开辟内存空间保存对象,变量 a 的值是⼀个地址,这个地址指向保存对象的空间;
var a = { x: 1, y: 2 };
var b = a; // 将a 的指引地址赋值给 b,⽽并⾮复制⼀给对象且新开⼀块内存空间来保存;
// 这个时候通过 a 来修改对象的属性,则通过 b 来查看属性时对象属性已经发⽣改变;
类型转换:
JavaScript 变量可以转换为新变量或其他数据类型:
通过使⽤ JavaScript 函数
通过 JavaScript ⾃身⾃动转换
ECMAScript 中可⽤的 3 种强制类型转换如下:
Boolean(value) - 把给定的值转换成 Boolean 型;
Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
String(value) - 把给定的值转换成字符串;
使⽤:Number()、parseInt() 和parseFloat() 做类型转换
Number()强转⼀个数值(包含整数和浮点数)。
*parseInt()强转整数,
*parseFloat()强转浮点数
函数isNaN()检测参数是否不是⼀个数字。 is not a number