学习JavaScript基础
JavaScript 是一门脚本语言,和java没啥关系
引入的两种方式
在html的head标签内写<script>写js代码<script>
<script
>
alert("123");
</script
>
通过创建js文件外部引入,<script src=“js文件的地址”></script>
基本语法入门
定义变量 var 变量名; / 也可以给初始值 var 变量名 = 初始值 ;数据类型: - number : 数字,小数和整数都是一样的类型 NaN : 不是一个数字 Infinity:表示无限大 - 字符串 : “aaa” ‘aaa’ - 布尔值 : true false - 逻辑运算 : && || ! - 比较运算符:两个等于(类型不一样,值一样,也为true 1==“1”),=== 表示绝对等于(类型和值都一样,才为true) - NaN 与任何数据都不等,包括他自己 NaN ===NaN false 需用 isNaN(NaN) 判断 - Math.abs(1/3-(1-2/3))<0.000001 来判断是否相等 1/3 === (1-2/3) 直接这样为false - null 空 undefined 未定义 - 数组 [] 没有类型限制 [1,1.1,“aa”,null] - 对象{key1:value1,key2:value2} -建议使用严格检查模式 ‘use strict’ – ES6 语法建议使用let 定义局部变量 var 定义全局变量
字符串
多行字符串 字符串模板字符串 aaa, ${变量名} 例: asd ${num} sad${a}字符串长度 str.length字符串不可变截取字符串 str.substring(1,4) 包括下标1不包括下标4
数组
数组长度是可变的 可以给arr.length赋值可以通过arr[0] 赋值和取值长度 arr.length通过元素获得下标索引 arr.index0f(元素)截取数组 arr.slice(1,6) [1,6)包括下标1不包括下标6可以通过push()/unshift() pop()/shift() 赋值取值 push 压入到尾部 unshift压入头部 pop 从尾部弹出 shift 头部弹出排序 sort() 升序反转 reverse()打印拼接数组使用特定字符串连接 str.join("-")
对象
键都是字符串,值是任意数据类型定义对象,都是键值对 var person={firstname:“John”, lastname:“Doe”, id:5566};可以动态的删除对象的属性 delete person.id;动态的添加:直接给新的属性赋值 person.age = 18;判断属性是否存在 “age” in person; true则存在 “toString” in person 也为true 还包括从继承的判断自身拥有的属性 person.hasOwnProperty(“age”)
Map
定义map,也是键值对 :var map = new Map([[“tom”,20],[“lucy”,30]])取出map的某个值 var age = map.get(“lucy”);设置map的值 map.set(key,value) 如果key存在则添加,否则覆盖删除某个键 map.delete(key)
Set
Set 为不重复的值的集合var set = new Set([1,2,3,4,5,1,2,3,1,2,3]) 结果为[1,2,3,4,5]添加 set.add(5);删除 set.delete(2)是否包含 set.has(3)
遍历
for(let x of map/set/arr){ x }
流程控制
if 判断while 循环for 循环for … in 循环foreach 需要传入函数
函数
定义 function 函数名(参数){。。。} 或者 var 函数名 = function(参数){。。。}JavaScript使用时不限定传入参数个数,函数中可用arguments获取所有参数还可以通过 …rest 获取其余参数 function aa(a,b,…rest){…}
变量作用域
1. 在函数体内var 声明一个变量,函数外不能使用
2. 函数中可以使用函数外的变量,如果在函数中定义了与函数外一样的变量,则屏蔽函数外的变量使用函数内的变量
3. JavaScript会自动提升变量到开头,但不会进行赋值
var a
= 1 + y
;
var y
= 2;
alter(a
);
==============相当于
var y
;
var a
= 1+y
;
y
=2;
alter(a
);
全局对象 window 所有全局变量都在全局对象中,重名会冲突 window.a建议自己定义一个全局对象 var myAll = {}使用let 定义局部变量
for(var i
=0;i
<10;i
++){}
alter(i
)
for(let i
=0;i
<10;i
++){}
alter(i
)
常量使用const 定义 const PI = 3.14;
方法
定义在对象中的函数就是方法所有的函数都有apply,也可以实现方法调用
var peo
= {
name
:"xxx",
age
:14;
now
:function(){
return new Date();
}
}
pro
.now();
================= 方式
2
function getNow(){
return new Date();
}
var peo
= {
name
:"xxx",
age
:14,
now
:getNow
}
peo
.now();
getNow
.apply(peo
,[])
Date对象: 创建 var date = new Date();JSON对象 1. 创建json JSON.stringfy(需要转化为json格式的对象) 2. 解析JSON.parse()
var peo
= {
name
:"xxx",
age
:14}
JSON.stringify(peo
)
var bb
= JSON.stringify(peo
)
JSON.parse(bb
)
面向对象编程
JavaScript 有原型链的概念 来实现继承
var M = function (name
) { this.name
= name
; }
var m1
= new M();
var m2
= new M();
m1
.__proto__
m1
.__proto__
.add = function () { alter("fly"); }
M.prototype
.add = function () { alter("fly"); }
m1
.add()
m2
.add()
M.prototype
=== m
.__proto__
2. ES6 可以使用class来定义 使用extends来继承
class Stu{
constructor(name
){
this.name
= name
;
}
dt(){alert("1")}
}
class nextStu extends Stu{
constructor(name
,age
){
super(name
);
this.age
=age
;
}
nt(){alert("2")}
}
操作BOM对象
BOM:浏览器对象模型window对象 : 代表浏览器窗口 有很多方法 window.innerHeight window.innerWidthnavigator 对象 : 封装浏览器的信息screen对象 : 屏幕信息 screen.height screen.widthlocation对象: 代表当前页面的URL信息
location
.reload();
location
.assign("URL地址");
document : 代表当前页面
var d
= document
.getElementById('d');
document
.cookie
;
history : 浏览器的历史记录 history.back()/forward() 后退/前进
操作DOM对象
DOM:文档对象模型浏览器网页就是一个Dom树,可以更新,删除,遍历(得到),添加 Dom节点获得节点
var id1
= document
.getElementById('id1');
document
.getElementsByClassName();
document
.getElementsByTagName();
father
.children
[index
]
更新节点
id1
.innertext
= "1234";
id1
.innerHTML
= '<em>1234</em>';
id1
.style
.color
= 'blue';
删除节点 : 先获取父节点再通过父节点删除自己
var h1
= document
.getElementsByTagName('h1');
var father
= h1
.parentElement();
father
.removeChild(h1
);
插入节点
list
.appendChild(js
);
var np
= document
.createElement('p');
np
.id
= 'np';
np
.setAttribute("属性","值");
np
.innertext
= '123';
var body
= document
.getElementsByTagName("body")[0];
操作表单
得到和修改输入框的值
var user
= document
.getElementById('user');
user
.value
;
user
.value
= "abc";
sex_boy
.checked
https
://cdn
.bootcss
.com
/blueimp
-md5
/2.10.0/js
/md5
.min
.js
JQuery库
里面有大量javascript函数引入 1. 下载jquery包,使用script引入 2. 使用线上的cdn,使用script引入使用方式
$("选择器").action(function());
事件: 鼠标事件 mouseXXX(), 键盘事件 , 其他事件
$(document
).ready(function(){
});
$(function(){
});
还需要学习更多。。。