一.javaScript导读
1.1 web网页标准
Html,css,javaScript 就像一个大蛋糕一样。
1.JavaScript主要用于Html的页面中,嵌入在Html的源码中。
2.JavaScript是因特网上最流行的脚本语言,它存在于全世界所有的web浏览器中,能够增强用户与web站点和web应用程序之间的应用。
3.Js是弱类型语言,没有类型声明,它的变量不必具有一个明确的类型。
4.Js是脚本语言。能够用来编程的并且直接执行源代码的语言,就是脚本语言。
5.JS也是解释性的语言。
6.JS是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。
7.HTML5的出现更是突出了JavaScript的重要性。
1.3 JavaScript的历史
JavaScript 最初被称为 LiveScript,由 Netscape(Netscape Communications Corporation,网景通信公司)公司的布兰登·艾奇(Brendan Eich)在 1995 年开发(这哥们在两周之内设计出了JavaScript语言。你没看错,这哥们只用了10天时间。)。在 Netscape 与 Sun(一家互联网公司,全称为“Sun Microsystems”,现已被甲骨文公司收购)合作之后将其更名为了 JavaScript。
正在上传…重新上传取消
布兰登·艾奇, JavaScript创始人
之所以将 LiveScript 更名为 JavaScript,是因为 JavaScript 是受 Java 的启发而设计的,因此在语法上它们有很多相似之处 ,JavaScript 中的许多命名规范也都借鉴自 Java,还有一个原因就是为了营销,蹭 Java 的热度。
在JavaScript后微软和Nombas也分别开发了JScript和ScriptEase来约束JavaScript。
5 JavaScript的组成
ECMAScript,Bom,Dom
总结
: JS 就是通过固定的语法去操作 浏览器 和 标签结构 来实现网页上的各种效 。
二.JavaScript基本使用
2.1 JS 嵌入方式
在 Html中使用JS可以用以下集中方式实现:
行内式
内嵌式
外部引用 js 文件
行内式,可以在 html 元素中直接用使用 js 语句,但是一般都是调用函数或简短的语句。
内嵌式,一般用于实现比较小的功能,代码不长的情况
外部JS文件,最常见的方式
2.2 JS 注释
// 单行注释
/* 多行注释 */
alter/prompt/confirm来源于window对象
alert(msg) // 浏览器弹出框 console.log(msg) // 浏览器控制台打印输出信息 prompt(info) // 浏览器弹出输入框,用户可以输入 confirm()
标签的事件属性
a()====>函数
function a(){
}
Html Dom 能够通过 JavaScript 进行访问。
getElementById()
是document的页面对象。
2. getElementById 是 document 的方法,通过传递的参数(id字符串),是一个标签的id值。可以返回的该元素对象
3.1.1 定义
变量是程序在内存中申请的一块用来存放数据的空间。通过变量名称我们可以使用或修改保存在系统中的对应的数据。
3.1.2 声明变量
JS是一种弱类型语言,不需要提前声明变量的类型,变量类型会自动判断。
var age; // 声明一个名称为age的变量
age = 12; // 给age这个变量赋值为12
通常声明与赋值一起使用:
var age = 12;
3.1.3 初始化变量
var age = 12
var name = 'Tom'
name = 'OO' // 再次给相同变量赋值则不用 var 进行初始化
var a = 10, b = 20, c = 30; // 可以同时声明多个变量
3.1.4 输入存储变量
var name = prompt('请输入你的名字')
alert(name)
3.1.5 布尔型
布尔型 Boolean 只有两个值,一个是 true, 一个是 false
3.1.6 undefined 未定义
一个声明后没有被赋值的变量会有一个默认值 undefined
变量被声明了,但没有赋值时,就等于undefined。
调用函数时,应该提供的参数没有提供,该参数等于undefined。
对象没有赋值的属性,该属性的值为undefined。
函数没有返回值时,默认返回undefined。
3.1.6 if分支结构
单分支结构
if (条件表达式) {
// 执行语句
}
// 其他代码
双向分支
if (条件表达式) {
// 执行语句
} else {
// 执行语句
}
// 其他代码
多分支结构
if (条件表达式1) {
// 执行语句1
} else if (条件表达式2) {
// 执行语句2
} else {
// 执行语句3
}
// 其他代码
3.1.5 三元运算符
如果条件表达式结果为真,则返回表达式1,的值,否则返回表达式2的值
3.1.6 Switch
switch(表达式){
case value1:
// 执行语句1
break;
case value2:
// 执行语句2
break;
default:
// 如果无条件满足,最终执行语句
}
3.2 循环结构
3.2.1 for 循环
for(初始化变量; 条件表达式; 操作表达式){
// 循环体
}
// 初始化变量: 用 var 声明的一个普通变量,通常用于计数器使用
// 条件表达式: 用来判断每一次循环是否继续执行,是终止的条件
// 操作表达式: 是每次循环最后执行的代码,经常用于计数器变量的更新(递增或递减)
3.2.2 嵌套循环
for (外层循环初始化变量; 外层循环表条件达式; 外层操作表达式){
for(内层循环初始化变量; 内层循环表条件达式; 内层操作表达式){
// 循环代码
}
}
如果外部循环循环一次,内部循环执行全部
3.2.3 while 循环
while(条件表达式){
// 循环体
}
3.2.4 do while 循环
do {
// 循环体
} while(条件表达式)
3.2.5 continue 和 break
break 关键字用于直接跳出循环
continue 关键字用于立即跳出本次循环,进入下一次循环
3.3 数组
数组可以把一组相关的数据一起存放,并提供方便的访问方式。
3.3.1 创建数组
// 利用对象创建数组
var arr = new Array();
// 利用 [] 快捷创建数组
var arr = [];
var arr = [1, 2, 3, 'Pink', True];
3.3.2 访问数组元素
数组可以通过索引来访问、设置、修改对应的数组元素,可以通过 “数组名[索引]“ 的方式来获取数组中的元素。
var arr1 = ['张三', '李四', '王五', '淑芬'];
// 索引号: 0 1 2 3
console.log(arr1); // 输出整个数组所有元素
console.log(arr1[0]); // 使用 数组名[索引号] 获取数组数组内指定元素的值
3.3.3 遍历数组
arr= ['a', 'b', 'c', 'd'];
for (var i = 0; i <= 3; i++) {
console.log(arr[i]);
}
3.3.4 数组长度属性length
arr= ['a', 'b', 'c', 'd'];
console.log(arr.length); // 输出4
利用length添加性的数组元素
arr = ["a", "b", "c", "d"];
arr[arr.length] = 'e';
console.log(arr[arr.length - 1]);
// 输出结果
e
3.3.5冒泡排序
var arr = [5, 4, 3, 2, 1];
for (var i = 0; i < arr.length - 1; i++) { // 外层循环
for (var j = 0; j <= arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
3.4 函数
3.4.1 声明函数
// 声明函数
function 函数名(){
// 函数内部代码,又称为函数体
}
// 调用函数
函数名();
3.5 作用域
全局变量:
变量在标签之内,或者是一个单独js文件
如果在函数内部没有声明的变量也属于全局变量(即在函数内部可以使用外部的变量)
浏览器关闭才会销毁
局部变量:
变量声明在函数内部
函数的形参也可以看做是局部变量
函数执行完毕就会销毁
链式作用域:
函数内部可以调用父集中的变量
var num = 10;
function fn(){
var num = 20;
function fun(){
console.log(num); // 链式作用域,找父集中的变量,如果没有再找上级
}
}