]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. Select 优化

    https://yq.aliyun.com/articles/704238?spm=a2c4e.11155472.0.0.66be4efeaUB5bk

  2. (一)java面试易忘题目精选(1)

    1. int和Integer有什么区别? 答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类 ...

  3. 小程序scroll-view 使用

    <scroll-view class="box" scroll-x="true" > <view </view> <view ...

  4. IDEA的查询引用、调用关系图的功能(转)

    转自: http://www.cnblogs.com/ghj1976/p/5382455.html Eclipse的"Call Hierarchy"可以查看一个Java方法或类成员 ...

  5. mysql删除某一个数据库中所有的表

    SELECT concat('DROP TABLE IF EXISTS ', table_name, ';') FROM information_schema.tables WHERE table_s ...

  6. Flutter easyrefresh示例 上拉加载+下拉刷新

    官方示例,简单改了下,实现功能为主. 代码如下: import 'dart:async'; import 'package:flutter/material.dart'; import 'packag ...

  7. 码云clone提示“you do not have permission to pull from the repository”

    使用git进行项目下载,换了电脑,配置了账号和邮箱后,pull一个私有项目的时候,出现如下问题: 原因分析: 由于没有设置Gitee的SSH公钥.生成公钥和配置公钥的办法,可以参考Gitee帮助里面的 ...

  8. SpringBoot Profile使用详解及配置源码解析

    在实践的过程中我们经常会遇到不同的环境需要不同配置文件的情况,如果每换一个环境重新修改配置文件或重新打包一次会比较麻烦,Spring Boot为此提供了Profile配置来解决此问题. Profile ...

  9. Python 日志文件处理

    今天想把 Python 项目中的日志 保存到文件中. 找到了方法.非常简单 https://www.cnblogs.com/nancyzhu/p/8551506.html 1. logging.bas ...

  10. 《Mysql - 索引(唯一索引和普通索引的选择)Change Buffer 》

    一:概述 - 如果业务代码已经保证了不会写入重复的身份证号. - 从性能的角度考虑,你会为这个身份证号,选择唯一索引还是普通索引呢?选择的依据是什么呢? - 这就要从他们的执行过程看起. 二:唯一索引 ...