JS初步介绍
JavaScript简称js。基于原型编程、多范式的动态脚本语言。由三大部分组成:
- ECMAScript:描述该语言的语法和基本对象
- DOM(文档对象模型):描述处理网页内容的方法和接口
- BOM(浏览器对象模型):描述与浏览器进行交互的方法和接口
js如何渲染页面:
- 内嵌:代码包含在script中,嵌入到HTML文档中。head、body均可以。
- 外部引入:头部head中加入
<script src="路径" type="text/javascript"> </script>
js变量
- 声明:用var关键词来声明变量,命名格式为驼峰式
- 赋值:用=进行赋值
- 数据类型:number string boolean null undefined object 用tyoeOf可以检测变量的数据类型
js变量类型
- 值类型:string(字符串)、number(数值)、boolean(布尔值)、undefined、null
- 数据类型:array(数组)、object(对象)、function(函数)
js函数
关键词:function,对大小写十分敏感
语法:
- 常规定义方式:声明可以提前
function functionname(){
//执行代码
}
functionname();//函数调用
//带参函数
functionname(argument1,argument2);
function functionname(var1,var2){
//代码
}
//带返回值的函数
function myFunction(){
//代码
return 数据类型不定;
}
- 匿名函数:不可以提前声明
var a=function (){
}
a();
- 自执行函数
(function (){
//代码
})();
js作用域
- 全局作用域
变量在函数外定义,即为全局变量(函数年没有使用 var 关键字也为全局变量)。全局变量有全局作用域 - 局部作用域
变量在函数内声明,即为局部变量,只能在函数内部访问;局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。局部变量有局部作用域。
var c=3; //全局变量
functionname();
functionname() {
a= 1; //变量在函数内,未使用var,则该变量为全局变量
var b=2; //局部变量
}
js运算符
- 算数运算符 +(加法) -(减法) * (乘法)/ (除法) % (取余)++(自增) – (自减) = == ===
- 赋值运算符 = ,+=, -= ,*=, /=, %=
- 逻辑运算符 &&(逻辑与),||(逻辑或),!(逻辑非)
位运算符 &(与),|(或),~(非) - 比较运算符 ==(等于) , ===(绝对等于),>, >= ,< ,<=
- 条件元素符
语法:条件?true:false
示例:
var m=1;
m+=2; //等价于m=m+2
var a="2";
var b=2;
//a==b则为真,==值相同,即使类型不同也会自己转换为相同类型再进行比较。
//a===b则为假,===绝对相等,要求值与类型都要绝对等于。
var i=100,j=10;
var max=i>j?i:j //判断条件是否成立,若成立则执行语句1,否则执行语句2。
var x=m++,y=++m
//x表示先运算再自增,y表示先自增再运算
js语句
- 条件语句:if 语句,if…else语句 ,if…else if…else语句 ,switch 语句
- for
- while ,do while
- break,continue
语法:
switch(n)
{
case 1:// 执行情况1
break;
case 2://执行情况2
break;
default:
//n 与 case 1 和 case 2 不同时执行的代码,默认执行语句
}
for (条件1;条件2;条件3) //注意三个条件之间用;分隔
{
//执行语句
}
while(条件){
//条件成立的执行语句
}
do{
//执行语句
}
while(条件);
//do与do while的区别为do while至少会执行一次(即使条件不成立)!!
//break直接跳出循环(switch语句也可使用),continue跳出当前循环
for(i=1;i<10;i++){
if(i==5){
break;
}
console.log(i); //i输出为1,2,3,4
for(i=1;i<10;i++){
if(i==5){
continue;
}
console.log(i); //i输出为1,2,3,4,6,7,8,9
}
DOM
获取DOM元素 (8种)
4种动态获取方式
- document.getElementById(’‘元素的ID名字’’)
- document.getElementsByTagName(’‘元素的标签名’’)
- document.getElementsByName(’’‘name名称’’)
- document.getElementsByClassName(’‘class名称’’)
2种固定元素的获取
- document.documentElement //获取HTML元素
- document.body//获取body元素
2种固定获取
初始化页面有几个元素 获取几个 后期动态添加的不能直接获取
- document.querySelector(’‘名字’’)获取一个//若为id名,则#名称,若 class名,则.名称
- document.querySelectorAll(’‘名字’’)获取所有
DOM事件
- 鼠标事件
mousedown mouseup mouseover mousemove mouseleave mouseout mouseenter - 键盘事件
keydown keyup keypress - 表单事件
blur focus change - 浏览器事件
load error resize - 触屏事件
touchstart touchmove touchend
js的事件在使用时加on