]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. Vue-cli安装,创建Vue项目

    1.安装脚手架: npm install -g vue-cli 2.查看vue: vue 3.查看可以使用的模板: vue list 4.创建项目sell: vue init webpack sell ...

  2. vs2015配置link.exe环境变量

    https://www.cnblogs.com/johnwii/p/4966086.html

  3. Can't create a new thread (errno 11) 解决办法 mysql无法连接

    问题的现象: 错误信息: ERROR 1135 (00000): Can't create a new thread (errno 11); if you are not out of availab ...

  4. 使用GDAL进行波段分离

    波段分离一般最常用的还是OpenCV,使用OpenCV的split方法可以直接对波段分离,并且效果不错,但是有一个问题是只能处理有限波段的数据,比如波段超过一定的数目就无法完成波段分离工作,或者数据有 ...

  5. Tensorflow 2.0 datasets数据加载

    导入包 import tensorflow as tf from tensorflow import keras 加载数据 tensorflow可以调用keras自带的datasets,很方便,就是有 ...

  6. 搭建sqli靶场

    前言: sqli是一个印度程序员编写的,用来学习sql注入的一个游戏教程 sqli这个靶场对php7.0是不兼容的(因为一些函数在php7中被删除了),所以搭建的时候要下载php5,如果你的系统要下载 ...

  7. [IDS]CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统,超详细!!!

    最详细的CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统免责声明一.如果因为使用本文档照成损失(系统崩溃.数据丢失等),作者不承担任何责任.二.本文档只是个人使用本文 ...

  8. PHP反射API的使用、体会、说明

    最近开发支付宝相关功能的时候,由于支付宝的SDK比较落伍,不支持composer的方式加载,使用三方的composer SDK又觉得不放心 为了简化代码的调用方式,使用PHP的反射类针对支付宝官方SD ...

  9. 《Mysql 一条 SQL 语句是如何执行的?》

    一:概述 - 首先需要认识一下 Mysql 整体的基础架构 -  二:Mysql 的分层 - MySQL 可以分为 Server 层和存储引擎层两部分 - Server 层 - Server 层包括连 ...

  10. java源码 -- LinkedHashSet

    问题 (1)LinkedHashSet的底层使用什么存储元素? (2)LinkedHashSet与HashSet有什么不同? (3)LinkedHashSet是有序的吗? (4)LinkedHashS ...