# javascript 总结

# 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊 C++ 和 C# 中的 lambda 玩法

这几天在看 C 的 lambda 表达式&#xff0c;挺有意思&#xff0c;这个标准是在 C11标准 加进去的&#xff0c;也就是 2011 年&#xff0c;相比 C# 2007 还晚了个 4 年&#xff0c; Lambda 这东西非常好用&#xff0c;会上瘾&#xff0c;今天我们简单聊一聊。一&#xff1a;语法…

Android之网络请求通过协程+okhttp的没有做网络异常处理导致程序奔溃问题

1 问题 app里面的网络请求是通过协程+okhttp来实现的,但是没有做网络异常处理(域名无法解析、502错误等等一系列),导致程序奔溃 2 尝试 因为app基本上做好了,外面有大几十个地方调用,然后又有不同的作用域,调用的地方太多了,一开始修改在最外出的网络请求地方直接加上…

Windows10系统重装后必不可少的优化步骤

1. 查看系统的激活状态 Win+R,打开运行,输入slmgr.vbs -xpr,回车! 可以看到,该系统没有永久激活,即将过期,过期后部分功能会不可使用,需要重新激活。 2. 彻底关掉Windows Defender 方法一: 打开“命令提示符(管理员)”,然后输入: reg add "HKEY_LOCAL_MA…

【iVX 初级工程师培训教程 10篇文拿证】03 事件及猜数字小游戏

目录 【iVX 初级工程师培训教程 10篇文拿证】01 了解 iVX 完成新年贺卡 【iVX 初级工程师培训教程 10篇文拿证】02 数值绑定及自适应网站制作 【iVX 初级工程师培训教程 10篇文拿证】03 事件及猜数字小游戏 【iVX 初级工程师培训教程 10篇文拿证】04 画布及我和 iVX 合照 【iV…

visual studio系列(vs)启动调试网站使用ip+端口局域网访问

vs系列工具创建web应用时会自动创建一些配置文件&#xff0c;本文章讲的是如何修改配置文件&#xff0c;使vs在启动运行调试情况下 使用ip端口形式在局域网访问。本文章使用的是vs2015&#xff0c;.net 4.5。步骤如下&#xff1a;1.使用vs创建好你的web应用&#xff0c;打开项目…

Android studio之编译提示Could not find :umeng-asms-v1.2.1:.

1 、问题 Could not determine the dependencies of task :app:compileDebugJavaWithJavac. > Could not resolve all task dependencies for configuration :app:debugCompileClasspath.> Could not find :umeng-asms-v1.2.1:.Required by:project :app> Could not …

1-100之间的奇数

#include "stdio.h" int main() {int i0;for(i1;i<100;i){if(i%21){printf("%d ",i);}}return 0; }转载于:https://blog.51cto.com/zhangxinbei/1718010

计算机与操作系统基础小结

计算机基础概念 1946年二月美国&#xff0c;世界上第一台电子计算机ENIAC诞生&#xff0c;似乎从这一年开始世界便逐渐变得不一样了。随着半个世纪的时间&#xff0c;计算机技术蓬勃发展&#xff0c;推动人类进入信息社会。 计算机操作界面&#xff1a; ①图形用户界面 ②命令行…

WPF效果第一百八十九篇之又玩Expander+ListBox

上一篇文章已经提前预告了今天要分享的效果,今天接着上一篇的效果接着去实现,还是先来看最终实现的效果:1、关于简单的布局设计:总结&#xff1a;①③是Expander②④⑤⑥是ListBox2、把上一篇的②这一块用ListBox替换:<Expander Grid.Column"1" ExpandDirection&q…

作为一个甘肃天水人,我对罐罐茶有一种特殊的情怀

作为一个出生在罐罐茶世家的80后乡土人&#xff0c;经历了罐罐茶的发展演变历史&#xff0c;与罐罐茶结下了不解情缘&#xff0c;下面我就跟大家分享一下刘一哥与罐罐茶的故事吧。 久违的罐罐茶.mp4美丽邂逅 我最早接触罐罐茶应该是90年代&#xff0c;那个年代家里条件很不好&…

【iVX 初级工程师培训教程 10篇文拿证】02 数值绑定及自适应网站制作

目录 【iVX 初级工程师培训教程 10篇文拿证】01 了解 iVX 完成新年贺卡 【iVX 初级工程师培训教程 10篇文拿证】02 数值绑定及自适应网站制作 【iVX 初级工程师培训教程 10篇文拿证】03 事件及猜数字小游戏 【iVX 初级工程师培训教程 10篇文拿证】04 画布及我和 iVX 合照 【iV…

将WebApiTestClient添加到ASP.NET Web API帮助页面

ASP.NET Web API帮助页面是一种有用的扩展&#xff0c;可为您的Web API自动生成基于Web的文档。它使调试变得更容易&#xff0c;因为您可以将帮助页面中的信息复制/粘贴到Fiddler等工具中&#xff0c;以调用Web API服务并检查响应。现在&#xff0c;如果您可以直接在帮助页面上…

【LeetCode】3. Longest Substring Without Repeating Characters

题目&#xff1a; Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc", which the length is 3. Given "bbbbb", the answer is "b", with t…

Android之判断时间戳是不是今天

1 需求 判断时间戳是不是今天 2、工具代码 /*** 获取每日0点时间* @return*/fun getTodayTime(timeStamp: Long): Long {val cal = Calendar.getInstance()cal.timeInMillis = timeStampcal.set(Calendar.HOUR_OF_DAY, 0)cal.set(Calendar.SECOND, 0)cal.set(Calendar.MINUTE,…

ArcGIS实验教程——实验二十五:大型商场选址经典案例

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验分析 合理的商场位置有利于商家营业,方便人们购物。商场选址问题需要考虑很多因素,如地理位置、居民点分布、停车场分布、交通情况等。综合把握这些影响因素对商场的选址显得尤为重要。 …

全球域名商解析新增保有量15强:爱名网落榜

IDC评述网&#xff08;idcps.com&#xff09;11月30日报道&#xff1a;根据DailyChanges公布的最新数据显示&#xff0c;在2015年11月26日&#xff0c;全球域名解析新增保有量15强排行榜上&#xff0c;共有5家中国域名商。其中&#xff0c;易名中国连续夺冠&#xff0c;新增保有…

大话领域驱动设计——应用层

‍概述应用层是基于领域的应⽤程序用例的实现&#xff0c;应⽤程序⽤例可以看作是⽤户界⾯上的⽤户交互。这一篇&#xff0c;我将详细讲解应用层组件及用法。总览应用层包含以下组件&#xff1a;数据传输对象&#xff08;DTO)&#xff1a;数据传输对象是一个简单的对象&#xf…

IE8采用IE7模式

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> X-UA-Compatible是针对ie8新加的一个设置&#xff0c;对于ie8之外的浏览器是不识别的&#xff0c;这个区别与 content"IE7"在无论页面是否包含<!DOCTYPE>指令&#…

【iVX 初级工程师培训教程 10篇文拿证】01 了解 iVX 完成新年贺卡

目录 【iVX 初级工程师培训教程 10篇文拿证】01 了解 iVX 完成新年贺卡 【iVX 初级工程师培训教程 10篇文拿证】02 数值绑定及自适应网站制作 【iVX 初级工程师培训教程 10篇文拿证】03 事件及猜数字小游戏 【iVX 初级工程师培训教程 10篇文拿证】04 画布及我和 iVX 合照 【iV…

ArcGIS实验教程——实验二十六:ArcScene实现二维数据的三维显示

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据)》 DEM三维显示: 地形数据+影像数据: 以上效果均是在ArcScene中实现的。 ArcScene允许用户制作具有透明效果的场景,在场景中能对数据进行浏览和交互。ArcAcene支持复杂的3D符号系统及纹理制图,支…