页面循环绑定(变量污染问题)

var lis = document.querySelectorAll(".ul li")

for ( var i = 0 ; i < lis.length ; i++ ) {
// 绑定事件时,没有执行事件内部的逻辑体
lis[i].onclick = function () {
console.log(i) # 变量污染导致 i 一直为 4
console.log( lis[i].innerText )
}
}

解决变量污染问题

for ( var i = 0 ; i < 4 ; i++ ) {
lis[i].index = i; //为对象设置一个属性用来保存索引,这样解决了变量污染问题 lis[i].onclick = function () {
console.log(this.index) }
}

js面向对象编程

function  Person( name,age ) {
this.name = name;
this.age = age;
} var p1 = new Person("egon",79)
var p2 = new Person("lxx",78) console.log(p1.name) // 以对象的形式编程
console.log(p1["name"]) // 以字典的形式

js对象属性的增删改查

var dic {
a:"aaa",
b;"bbb",
} 查 console.log(dic.a)
改 dict.a = "AAAAA" 有这个属性改掉
增 dict.c = "CCCC" 没有这个属性增加属性
删 delete dict.b

js数学类操作

abs(x):返回 x 的绝对值
ceil(x):向上取整
floor(x):向下取整
max(...n):求最大值
min(...n):求最小值
pow(x,y):返回 x 的 y 次幂
random():返回 0 ~ 1 之间的随机数 [0,1)

随机数与随机区间

Math.abs(-10)   10
Math.random() [0,1) 产生随机区间 [ mim,max ]
parseInt( Math.random() * (max - min + 1) + min ) 封装随机区间:
function randoNam(min,max) {
  parseInt( Math.random() * (max - min + 1) + min )
}

js字符串操作

chartAt(n):指定索引字符,同[n]
concat(str):将目标字符串拼接到指定字符串之后
indexOf(str):指定字符串第一次出现的位置
lastIndexOf(str):指定字符串最一次出现的位置
match(re):匹配指定正则,结果为数组(可全文匹配) replace(re, str):将正则匹配到的字符串替换为指定字符串
search(re):匹配指定正则,结果为匹配的索引,反之-1 substr(n, m):从索引n开始,截取m个字符长度(m省略代表截取到最后)
substring(n, m):从索引n开始,截取到索引m(m省略代表截取到最后)
slice(n, m):同substring(n, m)
split(re):以指定正则将字符串拆分为数组 toUpperCase():转换为大写
toLowerCase():转换为小写
trim():去除首尾空白字符
// 1.指定索引下的字符
var s = "abcdef123456呵呵哈哈";
console.log(s.charAt(3)); // 2.判断是否存在: 呵呵是否在字符串中
// -1代表不存在, 反正就是存在(的索引)
console.log(s.indexOf("呵")); //
console.log(s.lastIndexOf("呵")); // // 3.替换
var newS = s.replace("abc", "ABC");
console.log(s);
console.log(newS);
// 总结: 字符串为不可变类型, 如果某操作要改变字符串, 该操作一定拥有返回值 // 4.裁剪 slice(n, m) 从索引n开始截取到索引m之前
newS = s.slice(0, 3);
console.log(newS); // 5.拆分数组
var ss = "123 456 abc def";
var arr = ss.split(" ");
console.log(arr)

js数组操作

indexOf(ele):指定元素第一次出现的位置
lastIndexOf(ele):指定元素最一次出现的位置
reverse():反转数组
join(str):以指定字符串连接成字符串
sort(): 排序
filter(function(value, index){ return true | false}):过滤器 增删改查
push(ele):从尾加
unshift(ele):从头加 pop():从尾删
shift():从头删 splice(begin, length, ...eles):完成增删改
// begin开始索引
// length长度
// 新元素们(可以省略)
var arr = [3, 5, 1, 2, 4];
console.log(arr); // [3, 5, 1, 2, 4] // 1.反转
arr.reverse();
console.log(arr); // [4, 2, 1, 5, 3] // 2.排序
arr.sort();
console.log(arr); // [1, 2, 3, 4, 5]
console.log(arr.reverse()); // [5, 4, 3, 2, 1] // 3.判断元素是否存在 (不等于-1就是存在)
console.log(arr.indexOf(5)); // 4.拼接成字符串
var ss = arr.join("@");
console.log(ss); // 5@4@3@2@1

过滤器(回调函数)

var newArr = arr.filter(function (ele) {  // 回调函数的回调次数有数组的个数决定
// filter回调了三个参数: ele, index, sourcerr // 偶数
if (ele % 2 == 0) {
// 满足过滤条件
return true;
}
// 不满足过滤条件
return false;
});
// 满足过滤条件的就会添加到新数组中保留
console.log(newArr) // [4, 2] 原理
arr.filter(fn) {
var newArr = [];
for (var i = 0; i < this.length; i++) {
var res = fn(this[i], i, this);
if (res == true) {
newArr.push(res)
}
}
return newArr;
}

数组的增删改查

// 查
// arr[index] // 改
// arr[index] = newDate; // 增
// 从尾加: push()
// 从头加: unshift() // 删
// pop():从尾删
// shift():从头删 // splice(begin, length, ...eles);
// begin开始的索引
// length操作的长度
// 替换为的新元素们(可以省略) // 增
// 从索引3之前操作0位,替换为10 => 在索引3插入10
a.splice(3, 0, 10); // [4, 3, 5, 10, 1, 2]
console.log(a); // 在索引0之前操作0位,替换为1,2 => 在首位添加1和2
a.splice(0, 0, 1, 2);
console.log(a); // [1, 2, 4, 3, 5, 10, 1, 2] // 改
// 在索引末尾之前操作1位,替换为20 => 在末位修改为20
a.splice(a.length - 1, 1, 20); // [1, 2, 4, 3, 5, 10, 1, 20]
console.log(a); // [1, 2, 4, 3, 5, 10, 1, 20] // 删
a.splice(2, 3);
console.log(a); // [1, 2, 10, 1, 20]

页面循环绑定(变量污染问题),js面向对象编程(对象属性增删改查),js字符串操作,js数组操作的更多相关文章

  1. MVC3.0+knockout.js+Ajax 实现简单的增删改查

    MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...

  2. 用 JS(JavaScript )实现增删改查

    JS小例题 学习内容: 需求 总结: 学习内容: 需求 用 JavaScript 实现简单增删改查 实现代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HT ...

  3. 使用JS对HTML标签进行增删改查

    以下为通过JS对li标签进行简单的增删改查: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...

  4. 数据库中的记录通过servlet回显到jsp页面中(连接数据库或者查询參照:对数据进行增删改查)

    我们常常会用到通过图书的名称来查询图书那么这种话我们也就会使用到从数据库中搜索出数据而且载入到自己的Jsp页面中 这种话我们须要将从数据库中获取到的数据放进响应中然后通过%=request.getAt ...

  5. Node.js + MySQL 实现数据的增删改查

    通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能.这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务. 初始化项目 $ mkdir node-cru ...

  6. node.js中对 mysql 进行增删改查等操作和async,await处理

    要对mysql进行操作,我们需要安装一个mysql的库. 一.安装mysql库 npm install mysql --save 二.对mysql进行简单查询操作 const mysql = requ ...

  7. js的动态表格的增删改查思路

    1. 首先我们要知道,动态添加,肯定不是 在页面上写死得,而是通过js调用循环放入到页面上的,我们在写动态表格的时候不要先着急写,我们第一步要做的就是构思,要把自己的逻辑先弄清楚,不然的话,前面是好写 ...

  8. js的动态表格的增删改查完整代码

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. javascript 原生js对html元素的 增删改查 操作

    'use strict'; class View{ constructor(){ } //创建html元素 addEl(fel, elemName, id, cls){ //创建一个元素 let el ...

随机推荐

  1. Nginx-Linux下安装

    Nginx一般用来做反向代理,实现负载均衡.由于Nginx是用c开发的,所以安装前我们需要安装相应的环境,比如gcc等.下面是本人安装操作的步骤: step1.安装gcc:yum install gc ...

  2. Unity NPOI 无法读取xlsx

    遇到问题 在做编辑器开发时,需要在Unity Editor下直接读取Excel源文件,首先想到的是通过npoi去读取,但是遇到无法读取xlsx格式,只能读取xls格式的问题. 我的环境 unity 2 ...

  3. June. 25th 2018, Week 26th. Monday

    Change in all things is sweet. 有改变就会有美好. From Aristole. Change is always good, but embracing change ...

  4. python学习——读取染色体长度(二、向前一步:通过染色体序列获得长度信息)

    # 读取fasta # 解析每条序列的长度 chr1_seq = 'ATATATATAT' chr2_seq = 'ATATATATATCGCGCGCGCG' chr3_seq = 'ATATATAT ...

  5. VUE 安装及项目创建

    Vue.js 安装cnpm npm install -g 镜像 cnpm --registry=https://registry.npm.taobao.org 安装 vue.js cnpm insta ...

  6. 接口(迭代器) Iterator

    Iterator接口简介 在程序开发中,经常需要遍历集合中的所有元素.针对这种需求,JDK专门提供了一个接口java.util.Iterator.Iterator接口也是Java集合中的一员,但它与C ...

  7. C#-之属性(2)

    1.   属性结合字段和方法得多个方面,对于对象的用户来说,属性就像字段(这样就可以修改属性值或者访问),对于类的实现者来说,属性包括两个各部分get访问器(用于读取属性)和set访问器(用于设置属性 ...

  8. linux系统设置cpu孤立

    介绍 针对cpu密集型的任务,消耗cpu较高,最好设置cpu亲和度,以提高任务执行效率,避免cpu进行上下文切换,浪费不必要的性能. 特定任务(进程/线程)需要独占一个cpu核心并且不想让其他任务(进 ...

  9. LODOP不同电脑打印效果不同排查

    1.位置不同,偏移问题.详细的相关偏移问题的博文:LODOP不同打印机出现偏移问题 2.样式问题. 本机浏览器解析样式不同 ,相关超文本样式博文:Lodop打印控件传入css样式.看是否传入正确样式 ...

  10. Singleton多种实现方式的在多线程情况下的优缺点

    一.饿汉式 缺点:不能懒加载 // 不能懒加载 public class SingletonObject1 { private static final SingletonObject1 instan ...