# 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;语法…

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 …

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;如果您可以直接在帮助页面上…

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…

【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符号系统及纹理制图,支…

用Swashbuckle(swagger-ui)显示API帮助并进行调试

安装Swashbuckle&#xff1a; 打开NuGet控制台输入&#xff1a; Install-Package Swashbuckle 进行安装。查看帮助 在浏览器输入 http://调试项目地址/swagger/ui/index 可以看到帮助的效果API调试 点开调试的条目&#xff0c;填写相关参数&#xff0c;“Try it out!”

Linux两块磁盘挂载指向一个文件夹LVM磁盘管理(一)

注意&#xff1a;任何磁盘的操作有可能损坏里面数据&#xff0c;请提前备份数据&#xff0c;切记&#xff01;切记&#xff01;切记&#xff01; 0x00&#xff1a;前言. 在Linux使用过程中&#xff0c;发现一个文件很大&#xff0c;比如5G&#xff0c;但是有两块物理磁盘一个剩…

盘点现有开源软件许可合规工具

&#xff5c;原文出处&#xff1a;The Openchain Reference Tooling Work Group&#xff5c;翻译&#xff1a;刘天栋.Ted&#xff0c;开源社.ONES&#xff08;开源战略研究组&#xff09;&#xff5c;编辑&#xff1a;胡湘月&#xff5c;设计&#xff1a;周颖引言开源软件已经吞…

【前端就业课 第一阶段】HTML5 零基础到实战(十一)canvas 基础

注意&#xff1a;手机&#xff08;APP&#xff09;打开&#xff0c;内容显示更佳&#xff0c;不会的私聊博主即可 想要拿代码或加入学习计划&#xff08;** 博主会监督你并且教你写文章 **&#xff09;的拉到最下面&#xff08;PC端Web打开&#xff09;加博主即可&#xff0c;目…

【遥感数字图像处理教程】理论基础知识目录(5章全)

文章目录1. 专栏简介2. 专栏地址3. 专栏目录1. 专栏简介 遥感数字图像的处理&#xff0c;是对遥感数字图像的计算机处理。与工业和医学数字图像不同&#xff0c;遥感数字图像类型更为多样&#xff0c;内容更为复杂。因此&#xff0c;遥感数字图像的处理&#xff0c;不仅需要掌握…

MonoRail学习笔记十一:页面控件的填充和验证

Mono提供很多组件可以方便的处理页面&#xff1a;可以自动将后台的值填充到页面&#xff0c;可以自动进行Javascript验证&#xff0c;可以自动在后台验证等。这些功能都是比较实用的&#xff0c;可以减少很多开发 FormHelper是用来对应html页面中Form内的tag的&#xff0c;可以…