博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
# javascript 总结
阅读量:5318 次
发布时间:2019-06-14

本文共 5799 字,大约阅读时间需要 19 分钟。

# javascript 总结

## 语法

1. 区分大小写
2. 命名规范
1. 首字母必须是 字母 _ $
2. 其他字符可以是 数字 字母 下划线 $
3. 避开系统的关键字
4. 单词和单词连接方式推荐驼峰命名
3. 注释
1. 单行注释 //注释的内容
2. 多行注释 /*注释内容*/
4. 语句
1. 要用;结尾(推荐做法)
2. 如果不写; 那么系统默认以换行作为语句的结尾

## 变量/常量

1. 变量声明 var
2. 常量声明 const

## 数据类型

1. typeof 检测数据类型 a=null;typeof a 可能是object 对于比较老的浏览器是function
2. undefined
3. null
4. Boolean
1. true/false
5. Number
1. 数字(正/负/整/小/0/Infinity/-Infinity)
2. NaN NaN==NaN 返回false
6. String
1. 使用单引号或者双引号来定义
2. 转义字符\ \n \t \r \' \"
3. 字符串可以通过数组下标的方式来调用字符串对应位置的字符

## 运算符

1. 算术运算符: + - * / % ++ -- +(正) -(反)
2. 字符串: +
3. 比较运算符: > < == === != !== >= <=
4. 逻辑运算符: && || !
5. 位运算符: & | ^ XOR << >> <<< >>>
6. 三元运算符: 条件? 语句1:语句2
7. 赋值: = 带操作赋值: += -= *= /= %= |= &= ^= <<= >>= <<<= >>>=
8. 其他运算符: . , typeof delete instanceof void

## 流程控制语句

### 分支
#### if语句

```

1. if(条件){执行.....}
2. if(条件){...}else{...}
3. if(条件){...}else if(条件){}
4. if(条件){...}else if(条件){}else{}
5. if语句可以嵌套多层
```

#### switch语句

```

switch(传入值){
case 值:
执行内容...;
break;
case 值:
....
break;
default:
执行.....
}

```

### 循环

#### for

```

//语句1只执行1次
//执行语句2 当语句2返回true 继续执行
for(语句1;语句2;语句4){
语句3
}

```

#### while

```

while(条件){...} //条件为真 执行
do{...}while() //先执行一次 再判断条件是否为真 为真继续执行

```

#### for...in

```

//遍历数组或者对象
for(var i in obj){
//i表示 obj 的 下标 键名
obj[i] //obj 下标i对应的 值
}
```

## 函数(作用域)

```

function 函数名(){
}
var 变量名 = function(){}
//调用
函数名()
变量名()
(function(形参){})(实参)
(function(形参){}(实参))

函数里边内部有个arguments 表示 实参对象

```

## 对象

1. 对象声明

```

//数组
var arr = [];
var arr = new Array();
//对象
var obj = {};
var obj1 = new Object();
var obj2 = new 自定义构造方法();
var obj = {"name1":"zhangsan",name2:"lisi"}
```

2. 构造方法

```

//构造方法
function Person(n){
this.name = n||'小白';
this.say = function(){
alert(this.name)
}
}
```

## 内置对象

### Boolean
### Date

```

getFullYear()//年
getMonth()//月 0-11 当前月份需要+1
getDate()//日
getDay()//星期 0~6 0星期日
getHours()//时
getMinutes()//分
getSeconds()//秒
getMilliseconds()//毫秒
getTime()//时间戳 毫秒级

toString() //以字符串形式输出

valueOf() //内部存的值
```

### Number

```

toString(进制)
toFixed(n) 显示n位小数
toExponential(n)显示n位.后面的数 指数表示法
toPrecision(n) 显示n位
```

### Math

```

Math.PI //3.1415926535
Math.abs() //取绝对值
Math.ceil() //进一取整
Math.floor() //退一取整
Math.max()//最大值
Math.min()//最小值
Math.pow(x,y)//x的y次幂
Math.random() //0~1的随机数
//m~n随机整数
//Math.floor(Math.random()*(n-m+1))+m//建议使用
//Math.ceil(Math.random()*(n-m+1))+m-1
Math.round() //round 四舍五入
Math.sqrt() //求平方根

```

### String

```

trim() //清空两侧的空白

//查找

charAt() // 获取指定位置上的字符
charCodeAt() //获取对应位置上的字符的ASCII码
indexOf(“abc”) //返回子字符串abc在字符串中第一次出现的位置
lastIndexOf(“abc”) //返回子字符串abc在字符串中最后一次出现的位置
match(regexp) //找到一个或多个正则表达式的匹配
search(regexp) //查找与正则表达式相匹配的子字符串

//替换

replace(表达式,替换的字符串) //替换一个与正则表达式相匹配的子串

//截取

split(正则表达式,数组最大长度) //用于把一个字符串分割成字符串的数组
slice(startindex,endindex) //返回一个子字符串
substring(startindex,endindex) //返回一个子字符串
substr(startindex,length) //返回一个子字符串

//转换

toLowerCase() //将字符串转换为小写
toUpperCase() //将字符串转换为大写

```

### RegExp
```
exec() //返回匹配内容
test() //判断是否匹配
```

### Array

```
//添加/删除
unshift() //从数组头部添加元素
shift() //从数组头部删除一个元素
push() //从尾部添加
pop() //从尾部弹出一个元素
splice() //删除 替换 或 插入数组元素

//截取

concat() //合并 数组 或 元素 为一个新数组
slice() //返回数组中的一部分

//格式化

toString() //以字符串形式输出数组
join() //将数组元素以某个字符连接成字符串
reverse() //颠倒数组中元素顺序
sort() //排列数组中元素顺序

```

### Function (没用)

### Global

```

parseInt() //强制转换成int
parseFloat() //强制换行成float
isNaN() //判断是不是NaN
isFinite() //判断是不是Infinity
eval() //把字符串当做JS语句执行
escape() //编码
unescape() //解码
```

## BOM

### Location 对象 当前文档url地址对象模型

```

//跳转页面 设置 location.href = ""

protocal //协议

hostname //主机域名
port //端口号
pathname //路径加文件名
search //get参数 ?后面的内容
hash //锚点 #后面的
href //完整url地址

assign() //跳转
replace() //替换跳转
reload() //刷新

```

### Navigator 浏览器信息

```

appCodeName //代码名称
appName //浏览器名称
appVersion //浏览器版本号
language //语言
platform //系统
userAgent //用户请求头
```

### screen 浏览器屏幕信息

```

width //屏幕宽度
height //屏幕高度
availWidth - 可用的屏幕宽度
availHeight - 可用的屏幕高度

```

### history 访问网页历史

```

back() //后退 返回上一个 url
forward() //前进 到下一个 url
go(n) //跳转到 第 n 个 url
```

### 其他

```

alert("文本") //警告框
confirm("文本") //确认框
prompt("文本","默认值") //提示框

setInterval()

clearInterval()

setTimeout

clearTimeout()

```

## DOM

```

all[] //提供对文档中所有 HTML 元素的访问。

forms[] //所有form元素
images[]//所有img元素
links[]//所有a元素

 

//节点获取

getElementById() //通过id获取节点
getElementsByTagName() //通过标签名获取节点
getElementsByName() //通过name属性获取节点

childNodes children

firstChild firstElementChild
lastChild lastElementChild
nextSibling nextElementSibling
previousSibling previousElementSibling
parentNode parentElement

//获取属性

attributes //属性集合
getAttribute("属性名") //获取属性
setAttribute("属性名","属性值") //设置属性
node.removeAttribute("属性名") //删除属性
className

//节点操作

document.createElement() //创建节点
document.createTextNode(); //创建文本节点
parentNode.appendChild() //添加节点
parentNode.insertBefore(newNode,oldNode) //在xx节点前面添加子节点
parentNode.replaceChild(newNode,oldNode) //把xx节点替换上一个新节点
parentNode.removeChild() //删除节点

//便捷操作 获取内容

node.innerHTML //获取标签里边所有内容
node.value //获取表单的值
```

## 事件

```

//鼠标事件
* onclick //单击
dblclick//双击
mousedown//按下
mouseup//抬起
* mouseover //移入
* mouseout//移出
* mousemove//移动

contextmenu//鼠标右键

//键盘事件

onkeydown//按下
onkeyup//按起
onkeypress//在用户敲击按钮时触发

//文档

* onload 加载
* scroll 滚动条
resize //监听浏览器窗口大小改变

//表单

** onsubmit 提交事件
* focus 获取焦点
* blur 失去焦点
* change 内容改变
onselect 在元素中文本被选中后触发。
```

### 事件对象

```

onXXX = function(ent){
//获取事件对象
var e = ent || window.event;//兼容性处理
}

//事件对象的属性

altKey 返回当事件被触发时,"ALT" 是否被按下。
button 返回当事件被触发时,哪个鼠标按钮被点击。
* clientX 返回当事件被触发时,鼠标指针的水平坐标。
* clientY 返回当事件被触发时,鼠标指针的垂直坐标。
* pageX 相对于页面的位置
* pageY 相对于页面的位置
ctrlKey 返回当事件被触发时,"CTRL" 键是否被按下。
metaKey 返回当事件被触发时,"meta" 键是否被按下。
relatedTarget 返回与事件的目标节点相关的节点。
screenX 返回当某个事件被触发时,鼠标指针的水平坐标。
screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。
shiftKey 返回当事件被触发时,"SHIFT" 键是否被按下。
* keyCode 返回字符的ascii码

//取消冒泡

e.cancelBubble = true||e.stopPropagation();

```

## ajax

 

转载于:https://www.cnblogs.com/zhuozhouzjh/p/5815006.html

你可能感兴趣的文章
python中numpy.r_和numpy.c_
查看>>
WPF简单模拟QQ登录背景动画
查看>>
bzoj 2038 小Z的袜子
查看>>
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
freebsd 实现 tab 命令 补全 命令 提示
查看>>
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
实验4 [bx]和loop的使用
查看>>
Redis常用命令
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
centos系统python2.7更新到3.5
查看>>
【Quartz】常用方法的使用方式(三)
查看>>
MVVM模式下关闭窗口的实现
查看>>
C#区域截图——调用API截图
查看>>
c#与java中byte字节的区别及转换方法
查看>>