JS (二)
]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 (二)的更多相关文章
- JS二维数组排序组合
需求是这样的:http://q.cnblogs.com/q/29093/ 这里简述一下: 现在有一个不确定长度的数组.比如:var temp=[["Fu","Hai&qu ...
- 一天带你入门到放弃vue.js(二)
接下来我们继续学习一天带你入门到放弃系列vue.js(二),如有问题请留言讨论! v-if index.html <div id="app"> <p v-if=& ...
- js 二维数组 for 循环重新赋值
javascript 二维数组的重新 组装 var arr = [[1,2],[3,4],[5,6],[7,8]]; var temp = new Array(); for(var i= 0 ;i&l ...
- js二维数组定义和初始化的三种方法总结
js二维数组定义和初始化的三种方法总结 方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],[& ...
- Nuxt.js(二、解决首屏速度与SEO)
Nuxt.js(二.解决首屏速度与SEO) 1.普通的Vue SPA初始化加载速度很慢 在传统的web应用中,当用户请求一个页面时,服务器直接返回一个html文件,浏览器直接渲染出来.但是,在vue应 ...
- js 二维码生成 插件
<div onclick="liaotian()">点击生成二维码</div><div id="qrcode"></d ...
- js二维数组与字符串
1. 二维数组:数组中的元素,又引用了另一个数组对象 何时使用:只要保存横行竖列的数据, 具有上下级包含关系的数据, 创建二维数组: 1. var arr=[]; col arr[0]=[" ...
- JS二维数据处理逻辑封装探究
一.目的 定义出一个专门用于处理二维数据的组件,所谓二维数据就是能用二维表格显示出来的数据,所谓处理就是增删改查,很简单. 二.约束 外部程序给该组件传入如下形式的对象,让该组件自行解析. var t ...
- 简单又炫酷的two.js 二维动画教程
前 言 S N 今天呢给大家介绍一个小js框架,Two.JS.其实在自己学习的过程中并没有找到合适的教程,所以我这种学习延迟的同学是有一定难度的,然后准备给大家整理一份,简单易懂的小教程 ...
- js二维码插件总结
jquery.qrcode.js生成二维码插件&转成图片格式 http://blog.csdn.net/u011127019/article/details/51226104
随机推荐
- git clone时加上--depth 1
当项目过大时,git clone时会出现error: RPC failed; HTTP curl The requested URL returned error: Gateway Time-out的 ...
- iOS-UIScreen,UIFont,UIColor,UIView,UIButton
6.1 UIScreen // 屏幕的宽度 CGFloat screenW = [UIScreen mainScreen].bounds.size.width; 6.2 UIFont + (UIFon ...
- react 做的简易todolist
首先要有一定的react的基础,里面的一些不做解释(包括项目文件的用法及作用) ### 1. 先安装react的插件 npm install create-react-app -g ...
- 在Win7环境下搭建Geant4工作平台
本物理专业小硕,现在材料实验室工作,研究方向大概是核屏蔽材料的软件模拟吧.其实实验室里大多数师兄弟都是搞焊接的,平时能接触到这类直接给源码自己编译的软件的机会基本为零,所以一切都靠自己探索,成功搭建了 ...
- 使用expect实现自动交互,shell命令行自动输入,脚本自动化,变量引用,expect spawn执行带引号命令,expect 变量为空,不生效,不能匹配通配符*,函数,数组
背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作 ...
- python线程互斥锁Lock(29)
在前一篇文章 python线程创建和传参 中我们介绍了关于python线程的一些简单函数使用和线程的参数传递,使用多线程可以同时执行多个任务,提高开发效率,但是在实际开发中往往我们会碰到线程同步问题, ...
- 【leetcode算法-简单】28. 实现strStr
[题目描述] 实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如 ...
- 关于AES加密,以及各种分组加密
http://blog.csdn.net/searchsun/article/details/2516191
- SrpingBoot入门到入坟01-HelloWorld和SpringBoot打Jar包
第一个SpringBoot: 建立一个maven项目: 再pom.xml里面增加依赖: <?xml version="1.0" encoding="UTF-8&qu ...
- Laravel-admin图片本地上传配置问题
先打开config/filesystems.php 修改添加其中的 'admin' => [ 'driver' => 'local', 'root' => public_path(' ...