]1 函数
1 函数就是一段待执行的代码段
2 函数可以实现功能的封装,可以实现代码的复用
3 函数使用:
1 函数声明
2 函数调用
4 语法:
1 函数声明
1 使用function关键字进行函数的声明
et:
function 函数名 (参数列表){函数体1}
2 函数名自定义,普通函数的函数名尽量使用小写或小驼峰
3 参数列表,函数体执行所需的数据
4 函数体就是待执行的代码段
5 return 表示返回值,将函数执行的结果返回给外界,只能返回一个值,return后的代码都不执行
2 函数调用
语法:(函数名(参数列表))
注意:如果函数存在返回值,需要定义变量接收
var res=函数名()
3 使用:
1 函数先声明,后调用(非强制)
2 参数传递:
函数声明时定义的参数列表,称为形参,只声明变量,不考虑赋值
函数调用时给出的参数,是实际参数,调用的过程中,将实际参数赋值给形参,参与函数体中代码中代码的执行。
3 函数可以声明多个参数,使用,隔开
4 函数声明和调用时的参数个数可以不匹配
4 匿名函数
省略函数名的函数
语法:
1 function (){}
var fn=function(){};
将匿名函数保存给一个变量,使用变量名()的方式调用
fn()
2 匿名函数自执行
(function(){})();
(function (){console.log('111')})();
第一个()中是匿名函数,正常书写
第二个()表示函数调用,正常传参
2 变量作用域
1 变量起作用的范围
2 分类:
1 全局作用域
全局作用域中的变量为全局变量,在整个程序的任何地方都可以访问和使用。
使用:
1 所有在函数外部创建的变量都是全局变量
2 省略var 关键字创建的变量,都是全局变量
2 局部作用域(函数作用域)
在函数体内部起作用的变量,称为局部变量
函数体的{}就是局部作用域
使用:
在函数体中使用var 关键字定义的变量,就是局部变量,只在当前作用域作用域(函数体)中起作用,外界无法访问
3 作用域查找:
如果函数内部与外部定义了同名的变量,
函数体中访问,采用就近原则,
先查找当前局部作用域,找不到再到上一级作用域中查找
3 数组
1 有序的元素序列,用来存放一组数据
2 创建:
1 var arr1 = []; //创建空数组
2 var aarr2 = new Array(); // 创建空数组
3 初始化数据
1var arr3 = [10,20,30]; //创建同时的初始化元素
2根据下标初始化元素:数组会为元素自动分配下标,从0开始
var arr4 = [];
arr4[0] = 100;
arr4[3] = 200;
3 使用nwe关键字初始化
var arr5 = new Array(10,20,30); //等价于第一种初始化方式
4 初始化数组长度
var arr6 = new Array(5); //创建一个长度为5的数组
3 使用:
1 使用数组名[index]的方式操作数组元素
根据下标访问元素 arr[0]
根据下标修改元素 arr[0] = 1;
2 数组是对象类型
对象是由属性和方法组成的
通过点语法访问对象的属性和方法
1 属性:
length 获取数组长度
arr.length ;获取数组长度
清空数组:
arr.length = 0;
3 遍历数组
循环输出数组元素
et:
for (var i = 0;i<=arr.length-1;i++){
console.log(arr[i])} 4 数组方法
1 常用API
1 to String()
将数组内容转换为字符串,并返回
2 join()
将数组中元素拼接成一个字符串,并返回。
参数:可以指定数组元素之间的连接符
默认以逗号连接
3 reverse()
反转数组元素,倒序重新排列元素,返回反转后的数组
注意:
reverser()是对当前数组结构的调整,不会生成新数组直接反转原始数组
可以不接受返回值
4 sort()
将数组内容进行排序,返回排序后的数值,默认按照Unicode编码排序
注意:
sort()方法也是对数组结构的调整,直接对原数组的元素进行排序,会改变原始数组
参数可以为自定义的排序函数
function test(){
var arr1=[500,45,100,2,3];
function Asc(a,b){
return b-a; //两两比较,倒序排列
}
return arr1.sort(Asc);
}
test()
5 push(data)
表示在数组的末尾追加元素
参数:可以是一个,也可以是多个,多参数之间使用逗号隔开
返回值:返回新数组的长度
直接调整数组结构
6 pop()
表示删除数组最后一个元素
返回值:返回被删除的元素
数组的存储结构:
数组在内在中使用栈结构存储,先进后出
7 unshift(data)
向数组的头部添加元素
参数:可以是一个元素,也可以是多个元素
返回值:返回添加元素之后的数组长度
8 shift()
删除数组的头部元素
返回被删除的元素
5 二维数组:
数组中的每一个元素都是一个小数组
et :
JS的内置对象
1 对象
对象由属性和方法组成,可以使用点语法访问对象的属性和方法
2 对象分类:
1 内置对象:
由ECMAScript规定,例如数组,字符串,数学对象,日期对象...
2 DOM 对象
浏览器对象模型,由浏览器各大厂商制定,提供一系列与浏览器操作相关的对象
3 DOM 对象:
文档对象模型:提供一系列规范的操作文档的对象
4 自定义对象
1 String对象
var str1= 'hello'
var str2 = new String('word');
2 属性和方法
1 属性:
length:获取字符串长度
var s ='hello' //
var s2 =h e l l o''//
2 方法:
1 英文字符串的大小写转换
1 toUpperCase() 全转换成大写字母
2 toLowerCase() 全转换成小写字母
注意:
该方法会返回新的字符串,不影响原始字符串
2 获取字符或字符编码
1 charAt(0) 字符
2 charCodeAt(0) 编码
随机Math.random()
function test(){
var a=[1,2,3,4,5,6,7,8,9]
var c=[];
for(var I=1;I<=6;I++){
var _=get_rande()
c.push(a[_])
console.log(c);
}
var a=prompt('pleale,,---'+c)
if (a==c.join('')){console.log('true')}
return 1
} function get_rande(){
while(true){
var b=(Math.random()*9) if(parseInt(b)==0){;continue} return parseInt(b)
}
}

---JS做简单验证码

JS (二)的更多相关文章

  1. JS二维数组排序组合

    需求是这样的:http://q.cnblogs.com/q/29093/ 这里简述一下: 现在有一个不确定长度的数组.比如:var temp=[["Fu","Hai&qu ...

  2. 一天带你入门到放弃vue.js(二)

    接下来我们继续学习一天带你入门到放弃系列vue.js(二),如有问题请留言讨论! v-if index.html <div id="app"> <p v-if=& ...

  3. js 二维数组 for 循环重新赋值

    javascript 二维数组的重新 组装 var arr = [[1,2],[3,4],[5,6],[7,8]]; var temp = new Array(); for(var i= 0 ;i&l ...

  4. js二维数组定义和初始化的三种方法总结

    js二维数组定义和初始化的三种方法总结 方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],[& ...

  5. Nuxt.js(二、解决首屏速度与SEO)

    Nuxt.js(二.解决首屏速度与SEO) 1.普通的Vue SPA初始化加载速度很慢 在传统的web应用中,当用户请求一个页面时,服务器直接返回一个html文件,浏览器直接渲染出来.但是,在vue应 ...

  6. js 二维码生成 插件

    <div onclick="liaotian()">点击生成二维码</div><div id="qrcode"></d ...

  7. js二维数组与字符串

    1. 二维数组:数组中的元素,又引用了另一个数组对象 何时使用:只要保存横行竖列的数据, 具有上下级包含关系的数据, 创建二维数组: 1. var arr=[]; col arr[0]=[" ...

  8. JS二维数据处理逻辑封装探究

    一.目的 定义出一个专门用于处理二维数据的组件,所谓二维数据就是能用二维表格显示出来的数据,所谓处理就是增删改查,很简单. 二.约束 外部程序给该组件传入如下形式的对象,让该组件自行解析. var t ...

  9. 简单又炫酷的two.js 二维动画教程

      前  言 S     N 今天呢给大家介绍一个小js框架,Two.JS.其实在自己学习的过程中并没有找到合适的教程,所以我这种学习延迟的同学是有一定难度的,然后准备给大家整理一份,简单易懂的小教程 ...

  10. js二维码插件总结

    jquery.qrcode.js生成二维码插件&转成图片格式 http://blog.csdn.net/u011127019/article/details/51226104

随机推荐

  1. winform软件版本检测自动升级开发流程(转)

    注:按此博文试验OK 基于C/S的开发有开发效率高,对于业务逻辑复杂,且不需要外网使用具有较大优势,但是弊端也不可忽视,就是升级麻烦,不可能每写一个版本就要拿着安装包给每个人去替换,这样不仅搞得自己很 ...

  2. mariadb升级

    官方文档升级:https://mariadb.com/kb/en/library/upgrading/ 1.备份原来的数据库和配置文件 # mysqldump -u root -p -A > a ...

  3. LeetCode_70. Climbing Stairs

    70. Climbing Stairs Easy You are climbing a stair case. It takes n steps to reach to the top. Each t ...

  4. delphi TClientDatset资料

    第十一章 TClientDataSet 与TTable.TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端.TClientDataSet最大 ...

  5. Django中使用Bootstrap----带view.py视图函数(也就是项目下的脚本文件)

    一.Django中使用Bootstrap 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdja ...

  6. Tinymce在ASP.NET中的使用方法

    现在做网页,用FCKEditor用得比较多,它的实现原理是在要加入FCKEditor的地方加入一个iframe,并将其src指向FCKeditor/editor/fckeditor.html?Inst ...

  7. extentreports报告插件与testng集成

    前段时间在群里有人说了下用这个插件来生成测试报告,发现生成的报告非常不错.就下来学习了一下,并集成到了testng上,下面来分享一下: ExtentReports (by Anshoo Arora) ...

  8. C# 自定义特性(Attribute)详解

    什么是特性 特性的定义:公共语言运行时允许添加类似关键字的描述声明,叫做attribute,它对程序中的元素进行标注,如类型.字段.方法.和属性等.attribute和.NetFramework文件的 ...

  9. 乐字节Java编程语言发展,面向对象和类

    大家好,上次我们讲过了乐字节Java编程之方法.调用.重载.递归,接下来我们将会进入到Java封装的内容.Java编程语言发展,面向对象和类. 一.编程语言的发展 机器语言——直接由计算机的指令组成, ...

  10. 剑指offer30:连续子数组的最大和

    1 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果 ...