# 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

# javascript 总结相关推荐

  1. 【AJAX】JavaScript的面向对象

    Ajax中后端数据返回后需要前端通过JavaScript来实现动态数据更新的问题.所以,在Ajax中加深了一遍JavaScript面向对象的印象. 基础部分: JavaScript中创建对象并简单对象 ...

  2. 【JavaScript总结】JavaScript语法基础:JS高级语法

    作用域链: 1.JS中只有函数能够限定作用域的范围: 2.变量处理在制定的函数范围内,还有一个特殊的作用域,就是没有用var 声明的全局作用域 3.js中的作用域链是为了清晰的表示出所有变量的作用范围 ...

  3. 【JavaScript总结】JavaScript语法基础:DOM

    ->DOM的理解:文档对应dom树 ->有了DOM能做什么:DOM的操作 html文档做为DOM树模型,DOM树的节点就是对象.对象会触发事件来执行一些事件代码. C#中的事件是一个委托变 ...

  4. 【JavaScript总结】JavaScript语法基础:JS编码

    运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...

  5. 【JavaScript总结】JavaScript语法基础:数据类型

    ------>数据类型有哪些? ->基本类型:数字类型,布尔类型,字符串类型 ->引用类型:对象类型,函数类型 ->空类型:null 和 undefined ->运算符: ...

  6. 【JavaScript总结】JavaScript发展与学习内容

    发展: 最初浏览器是为大学里浏览文档用,从地址栏输入文档地址,找到文档显示. 后来各种需求(购物网站,个人博客)出现,已有功能不能满足需求. 可人们依旧在努力满足这种需求,但实现后的效果很不尽人意. ...

  7. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  8. [JavaScript] JavaScript数组挖掘,不只是讲数组哟(2)

    课程来源:后盾人 上一篇的内容:[JavaScript] JavaScript数组挖掘,不只是讲数组哟 数组引用类型分析,多维数组,用Array.of为数组创建细节,类型检测与转换,在一个数组后面加一 ...

  9. [JavaScript] JavaScript 数组挖掘,不只是讲数组哟

    课程来源:后盾人 数组引用类型分析 数组的定义 const array = new Array('hello', 'dust', 1, 2, 3, 4, 5) console.log(array) l ...

  10. linux下用js生成xml,js2xml:将javascript字符串转换为xml

    有时候爬数据遇到像下面这种,数据在script标签中以javascript形式存在. var totalReviewsValue = 32; var averageRating = 4.5; if(t ...

最新文章

  1. 你自己不优秀,认识谁都是个屁
  2. listview条目用状态选择器没反应
  3. JavaScript文本特效实例小结【3个示例】
  4. 2754. [SCOI2012]喵星球上的点名【后缀数组】
  5. 跳出多重循环_代码里的俄罗斯套娃 | 07 多重循环
  6. LaTeX —— 特殊符号与数学字体
  7. 5901和5909在P570中的功用
  8. 勒索病毒c语言源代码,勒索病毒原理解析
  9. 飞思卡尔16位单片机(四)——GPIO输入功能测试
  10. 我的世界java营火如何合成_我的世界:关于营火的8个“冷”知识,可通过27000种方式来合成!...
  11. 计算机教育主编在线审查,大学计算机基础教程-王慧儒主编.pdf
  12. 在python中的占位符中、请你选出不属于占位符的选项_2020年超星尔雅微表情识别·读脸读心 作业答案...
  13. 《机器学习实战》 自制勘误表 中文版第一版2015年9月第11次印刷版
  14. WLAN中的MIMO技术详解
  15. hdoj1814 Peaceful Commission【2-set】
  16. 人工智能/数据科学比赛汇总 2019.9
  17. MyBatis使用@Select注解写动态SQL语句
  18. C语言程序设计编辑与调试环境初级(已更完)
  19. linux 转发永久修改,linux-networking – 如何使用systemd在Linux中正确永久启用ip转发?...
  20. 01-python基础一

热门文章

  1. JVM用户自定义加载器实现步骤
  2. java 负数存储结构_负数在java中的存储和读取过程 | 学步园
  3. WebBrowser控件的常用方法、属性和事件
  4. 数字图像处理应用matlab,数字图像处理与应用(MATLAB版)
  5. java编程思想 初始化_《java编程思想》_第五章_初始化与清理
  6. python (第八章)补充-可迭代对象(补充高阶函数,以及常用的高阶函数)
  7. 程序详细设计之代码编写规范_我在不编写任何代码的情况下建立了一个设计策划网站
  8. 粉红噪音_粉红的常绿力量
  9. 蛋花花APP,APP开发这几点你要注意了
  10. 吴恩达机器学习笔记11-梯度下降法实践2-学习率