Javascript笔记
==严格要求== 在代码开头前加上
1
'user strict'
==定义局部变量用let,定义全局变量用var==
1
2let i = 1;
var i = 1;==定义一个对象的方法==
1
2
3
4
5
6
7var person = {
name:"cc",
age:3,
// 数组可以有多种类型
tags:['js',123,'javaweb']
//最后一个不需要“,”
}==NaN表示不是一个数字,有个方法叫做 isNaN();==
NaN == NaN —- false
==定义字符串,字符串不可变性==
1
2
3let name = "cc";
let age = 23;
let msg = `你好呀,${name}`==数组长度可以任意改变==
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22var arr = [1, 2, 3, 4, 5];
arr.length = 10;
// 数组方法
arr.indexof(2) // 返回元素2的下标
arr.slice() // 相当于substr()
arr.push() //往尾部添加,一此可以添加多个
arr.pop() //弹出尾部的一个元素
arr.unshift() //往头部添加,一此可以添加多个
arr.shift() //弹出头部的一个元素
arr.sort()
arr.reverse()
arr.contact() // 拼接数组,返回一个新的数组
arr.join("-") // 拼接
// 多维数组
arr = [[1, 2], [3, 4], ["5", "6"]];==对象==
1
2
3
4
5
6
7
8
9
10//动态增删
var person = {
name:"cc",
age:3,
score:100
}
delete person.age;
person.sex = 'nan';
'age' in person // 判断这个属性该对象是否拥有==forEach==
1
2
3
4var age = [1, 2, 3, 4, 5, 6, 7, 8];
age.forEach(function(value) {
console.log(value)
})==for …in==
1
2
3
4
5
6
7
8
9for...in
for(var num in age) {
console.log(age[num]) //这里的num是索引
}
for...of // 遍历map,set用这个
for (var x of age) {
console.log(x)
}==函数的定义==
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19function f(x) {
if(x >= 0) {
return x;
}
else {
return -x;
}
}
// 另外一种方式 匿名函数定义的方式
var f = function(x) {
if(x >= 0) {
return x;
}
else {
return -x;
}
}
// 通过f就可以调用函数==规避函数不传参的情况==
1
2
3
4
5
6
7
8
9
10
11
12var f = function(x) {
// 手动抛出异常来判断
if(typeof x != 'number') {
throw 'Not a Number';
}
if(x >= 0) {
return x;
}
else {
return -x;
}
}==
arguments
关键字,rest
关键字==1
2
3
4
5
6arguments代表传递进来的所有参数是一个数组!数组名字就叫 arguments
rest 获取处了已经定义的参数之外的所有参数
rest参数只能写在最后面,用...标识
function f(a, b, ...rest) {
console.log(rest);
}将old_alert = window.alert,window.alert就失效了
需要再赋值回来
var是函数作用域,let是块级作用域。。。var应该不是函数作用域
建议以后使用用let定义局部作用域
const 常量关键字
1
const PI = '3.14';
==自己定义一个全局变量==
1
2
3
4
5
6
7
8
9
10// 唯一全局变量
var cc = {};
// 定义全局变量
cc.name = "超人";
cc.age = 18;
cc.Gmail = ccwasyin@gmail.com;
cc.add = function(a, b) {
reuturn a + b;
}==alert变量==
1
2
3
4
5
6
7
8
9
10
11<script>
var x = '你好';
window.alert(x);
var old_alert = alert;
window.alert = function() {
}
alert = old_alert;
window.alert(123);
</script>==方法==
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23// 方法中的属性用逗号隔开
var cc = {
name : 'rr',
birth:2001,
age: function() {
var now = new Date().getFullYear();
return now - this.birth;
}
}
// 另一种定义方法
function getAge() {
var now = new Date().getFullYear();
return now - this.birth;
}
var cc = {
age:getAge()
}
// apply 可以改变this的指向
getAge.apply(cc, []) // this指向了cc这个类, 参数为空时间戳表示当前这个时间距离1970年0点0分0秒的毫秒数
格式:
对象用 {}
数组用[]
所有键值对都是用key:value
1
2
3
4
5
6
7
8
9
10
11var user = {
name: "cc",
age:3,
sex:'nan'
}
// 对象转化成json字符串 {"name": "cc", "age":3, "sex":"nan"};
var jsonUser = JSON.stringify(user);
// json 字符串转化为对象, 参数为json字符串
var obj = JSON.parise('{name:"cc", "age":3, "sex":"nan"}');var xingming = { name:"xiaoming" }; var bird = { fly:function() { console.log(this.name + "fly..."); } } xiaoming.__proto__= bird;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
+ ### ==class关键字==
```javascript
class Student {
constructor(name) {
this.name = name;
}
hello() {
alert('hello')
}
}
var cc = new Student("cc");
// name作为参数传进去,经过构造器变成属性==3继承==
1
2
3
4
5
6
7
8
9
10
11class cc extends Student {
constructor(name, grade) {
super(name);
this.grade = grade;
}
myGrade() {
alert('我是一名小学生')
}
}
var xiaoming = new cc('xiaoming', 90);
操作BOM对象
window 代表浏览器窗口
window.alert()、window.innerHeight()
screen 代表屏幕尺寸
screen.width
screen.height
location 代表当前页面的url信息
location.assign(“www.ccwas.com")修改后在访问这个页面直接跳转到ccwas里去
document 代表当前页面,html dom文档树
document.title
“百度一下,你就知道”
1
2
3
4
5
6
7
8<dl id = "app">
<dt>java</dt>
<dd>javase</dd>
<dd>javaee</dd>
</dl>
<script>
var dl = document.getElementById('app');
</script>cookie
获取cookie documentr.cookie
劫持cookie就是获取你的cookie
服务器端可以设置cookie:httpOnly
history 不建议使用
history.back() //后退
history.forward() //前进
获取dom节点
1 | <body> |
更新dom节点
1 | <body> |
删除节点是一个动态的过程
步骤:先通过自己获取父节点,再通过父节点删除自己
1 | var self = document.getElementById('p1'); |
增加一个节点
1 | <body> |
获得和设置表单的值
1 | <body> |
==jQuery==
公式:$(selector).action()
1 | <head> |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.