一、JavaScript简介
1、JS介绍
JavaScript,简称JS
JS是由网景公司提供的一门语言
JS是一门嵌入在浏览器中执行的脚本语言(一段小程序)
主要作用:用于实现网页中的动画效果和实现表单验证
JS可以运行在服务器端(Node.js)
2、JS的特点
JS是一门直译式的语言(JS不需要编译,执行的就是源代码)
JS是一门基于对象的语言(JS可以通过某些机制模拟面向对象)
JS是一门弱类型的语言(Java是强类型)
Java:
int number = 100;
boolean flag = true;
String str = "abc";
JS:
var x; //undefined,undefined
x = 100; //number
x = "abc"; //string
x = true; //boolean
x = []; //object
3、JS的优势
JS具有良好的交互性(提出初衷,嵌入在浏览器中,能够提高用户体验)
JS具有一定的安全性(运行在浏览器内部,比如,不能访问硬盘)
JS具有跨平台性
JS语言具有跨平台性,是因为有浏览器
4、如何在HTML中引入JS?
4.1.方式一: 在head或者body内部可以添加一个script标签
在script标签内部可以直接书写JS代码
4.2.方式二: 在head或者body内部可以添加一个script标签
在script标签通过src属性,可以引入外部的JS文件
需要注意的是,第二种方式script标签内部不要写JS代码,写了也不会执行!
4.3.方式三:将JS代码写在标签上
二、JS的语法
1、JS的注释
// 单行注释
/* 多行注释 */
2、JS数据类型
2.1.基本数据类型
1)数值类型(number)
在JS的底层,所有的数值都是浮点型
但在处理和显示的过程中,如果可以显示为整型,会自动的在整型和浮点型之间进行转换
Infinity(正无穷大)
-Infinity(负无穷大)
NaN(Not a Number)非数值
2)字符串类型(string)
JS中的字符串类型是基本数据类型,字符串可以使用双引号或者单引号引起来
例如:
var str1 = "Hello JS";
var str2 = 'Hello JS';
console.log( typeof str1 ); // string
console.log( typeof str2 ); // string
JS中提供了字符串的包装对象--String
var str3 = new String("Hello JS");
console.log( typeof str3 ); // object
str1和str2也可以当做对象使用,在使用时,和str3没有什么区别
3)布尔类型(boolean)
布尔类型值: true 和 false
4)undefined类型
undefined 类型的值只有一个,就是undefined
undefined: 表示声明了变量,但是没有为变量赋值,该变量的值就是undefined
undefined 不能调用属性或者方法,否则会抛出异常!
5)null类型
null类型的值也只有一个,就是null。
null: 表示空值,可以作为函数的返回值,表示函数返回的是一个空的对象
null不能调用属性或者方法,否则会抛出异常!
2.2.复杂数据类型
对象,数组,函数
3、JS的变量声明
JS中是通过var关键字声明变量,通过var声明的变量不区分类型,可以指向任意的数据
var s1 = "Hello World";
s1 = 123;
s1 = false;
s1 = [];
s1 = function(){}
JS中有自动断句功能,即使一行后面不加分号,也可以正常执行,但是建议加上分号;
JS中如果重复声明变量,也不会报错, 因为JS中声明一个已存在的变量不会生效;
var x = "abc"; //var x; x = "abc";
var x = 123; //var x; x = 123;
alert(x);
4、JS的运算符
算术运算符: +,-,*,/,%,++,--
赋值运算符: =,+=,-=,*=,/=,%=
比较运算符: ==,!=,>,>=,<,<=
位运算符: & , |
逻辑运算符: && ,|| ( false && 表达式, true || 表达式 )
前置逻辑运算符: ! (not)
三元运算符: 表达式 ? 表达式1 : 表达式2
。。。
5、JS的语句
5.1.if分支
if(){...}
if(){...}else{...}
if(){...}else if(){...}else{...}
5.2.switch分支
switch(x){
case opt1:
代码块;
break;
case opt2:
代码块;
break;
...
default:
代码块;
}
5.3.循环结构
for(){}
while(){}
do..while(){}
6、JS数组
JS的数组声明方式:
//声明一个空数组,长度为零
var arr1 = []; //java中: int[] numbers = {10,8,45,99};
//声明一个具有初始值的数组
var arr2 = [100,"abc",false,new Date()];
//声明一个空数组,长度为零
var arr3 = new Array();
//声明一个具有初始值的数组
var arr4 = new Array(100,"abc",false,new Date());
//指定长度的数组(只有一个参数并且是数值,这个数值是长度)
var arr3 = new Array(10);
var arr3 = new Array("abc");
JS数组的特点:
1) JS中的数组可以存储任意类型的数据
2) JS数组的长度可以被任意改变
7、JS函数
JS的函数相当于Java中的方法
就是一个具有功能的代码块,通过函数名可以反复执行!
声明方式1:
function 函数名([参数列表]){
函数体...
}
声明方式2:
var 变量/函数名 = function([参数列表]){
函数体...
}
如果是只需要执行一次的函数,可以声明为匿名函数
(function([参数列表]){
函数体
})([参数列表]);
三、JS的DOM操作
DOM: Document Object Model,文档对象模型
其实就是JS专门为操作html元素所提供的一套API。
1、获取html元素
1) document.getElementById(id值);
-- 通过元素的id属性值获取一个html元素,返回值就是这个元素所对应的JS对象
2) document.getElementsByTagName(标签名);
-- 通过元素名称,获取该名称对应的所有元素组成的数组,可以通过数组[下标]的形式获取其中的每一个元素,也可以通过循环遍历。
3) document.getElementsByClassName(class值);
-- 通过元素的class属性值,获取该class值对应的所有元素组成的数组,可以通过数组[下标]的形式获取其中的每一个元素,也可以通过循环遍历。
4) ele.parentNode -- 获取当前元素的上级元素(父元素)
5) ele.innerHTML -- 获取元素的所有内容, 或者设置元素的内容(原内容会被覆盖)
6) ele.value -- 获取或设置表单项元素的value值
2、增删改查元素
1)创建一个html元素
document.createElement(元素名/标签名);
-- 创建一个指定名称的元素,返回值就是这个创建的元素所对应的JS对象
2)添加子元素
parentEle.appendChild( childEle );
-- 父元素调用方法添加一个子元素到父元素内部
3)删除子元素
parentEle.removeChild( childEle )
-- 父元素调用方法删除内部的子元素