Day09 Js continue

1. 数组

  • 1.1 数组的构造

<script >
  //1.直接給值
  let arr=[1,2,3]
  //2.构造函数的方式
  let b=new Array();
  b[0]=1;
  console.log(b[0])
  //检测数组
  //1.用typeof 看数组 是对象
  console.log(typeof b)
  //2.用instancof Array 来看 返回值为TRUE
  console.log(b instanceof Array);
  //3.Array.isArray 返回true
  console.log(Array.isArray(b))

</script>
  • 1.2数组的方法

<script>
  //数组的添加

  //改变数组原来的内容
  //push 从后增加
  let arr=[1,2,3]
  arr.push(4);
  console.log(arr)
  //unshift 从头(前)添加
  arr.unshift(0);
  //concat() 不改变原数组的内容,返回一个拼接后的数组
  let b=arr.concat(5);
  console.log(b)
  console.log(arr);

  //数组的克隆
  //1.遍历push
  let c=[]
  for (let i=0;i<arr.length;i++){
    c.push(arr[i])
  }
  console.log(c)
  //2.使用concat添加 空数组[].concat
  let d=[4,5,6]
  let e=[].concat(d)
  console.log(e)

  //数组的删除
  //1.从后删除 pop();
  let f=[1,2,3]
  f.pop()
  console.log(f)
  //2.从头删除
  //shift
  f.shift()
  console.log(f)

  //数组的修改
  //splice(index,num,item) 先删除再插入 改变原来的数组
  //index  数组的下标
  //num 删除个数
  //item 插入的参数

  let g=[1,2,3,4]
  g.splice(1,1,"h")
  console.log(g)
  //splice 补充
  // 增加
  let j=[1,2,3,4];
  j.splice(3,0,"hello")
  console.log(j)
  //删除
 let k=[1,2,3,4];
  k.splice(0,2)
  console.log(k)

  //数组的查询
  let h=[1,2,3,4]
  //1.通过下标
  h[1];
  //2.查值对应的下标
  console.log(h.indexOf(4))
  //3.slice(startIndex,endIndex) 不包含endIndex
  console.log(h.slice(2,3))
  //slice(startIndex) 从startIndex一直到最后
  console.log(h.slice(1))
  //join(separator分隔符) 方法 将数组转化成一个字符串 默认为“,”
  let l=["hello","world","good"];
  let m=l.join("|");
  console.log(m)

  //数组的排序
  let aa=[22,2,12,33,14];
  // 数组排序 没用
  //升序
  let bb=aa.sort(function (a,b) {
    return a-b;
  })
  // 降序
  // let cc=aa.sort(function (a,b) {
  //   return b-a;
  // })
  console.log(bb)
  // console.log(cc)

  //求和
  let dd=[1,2,3,4,5]
  let sum=dd.reduce(function (a,b) {
    return a+b
  })
  console.log(sum)

  //reverse 倒置 颠倒数组中的元素
  let ee=[1,2,3,4]
  let ff=ee.reverse();
  console.log(ff)

</script>

2.String方法

<script >
  let str="hello world"
  //获取字符串的长度
  let len=str.length
  console.log(len)
  //字符串增加
  //concat 原来的字符串不变  返回新的拼接后的字符串

  let add=str.concat("add")
  console.log(str)
  console.log(add)
  //字符串 查询
  //charAt 输出对应下标的字符
  let char=str.charAt(1)
  console.log(char)
  //indexOf 输出对应字符的下标 如果没有返回-1
  let index=str.indexOf("l")
  console.log(index)
  //字符串的截取
  //slice()
  let a="hello world"
  let b=a.slice(1,4)
  console.log(b)
  //substr(startIndex,length)
  let subStr=a.substr(1,4)
  console.log(subStr)
  //substring(startIndex,endIndex)
  let subString=a.substring(1,4)
  console.log(subString)
  //分割
  let c=a.split("l")
  console.log(c)
  let d=a.split("")
  console.log(d)
  //search方法 返回搜索字符的下标 不存在返回-1
  let e=a.search("l")
  console.log(e)
  //match 方法 将匹配的内容返回一个数组 不存在返回Null
  let f =a.match("l")
  console.log(f)
  //replace 方法 只替换第一个查到的值
  let g=a.replace("l","h")
  console.log(g)
</script>

3.正则表达式

  • 3.1 正则表达式的构造

<script >
  //string中match,search,split,replace支持正则表达式
  //将所有l转换成*
  // /l/g 两个斜杠里面的内容 g表示全局搜索
  let a="hello world";
  let reg=/l/g;
  let b=a.replace(reg, "*")
  console.log(b)
  //构造函数的方式创建
  // 参数1:pattern
  //参数2:attributes
  let rege=new RegExp("l","g");

</script>
  • 3.2备选字符集

<script >
  //备选字符集[海天]
  //[] 表示括号内任意一个字符匹配
  let a="上海,上天,上去,上海那";
  let reg=/上[海天]/g
  let b=a.replace(reg, "*")
  console.log(b)
  let c="12535_3dd"
  // let d=/[\d]/g
  let d=/[0-9]/g
  console.log(c.replace(d, "*"))
  //连续的备选字符
  //[a-z] 所有的小写字母
  //[A-Z] 所有的大写字母
  //[0-9] 所有的数字 \d
  //[0-9a-zA-Z] 所有数字和字母
  // \w 任意一个数字,字母或者下划线
  // \s 一位空字符 空格 tab 换行
  // . 处换行外其余所有字符
  let e=/[0-9a-zA-Z]/g
  console.log(c.replace(e, "*"))
</script>
  • 3.3 量词

<body>
<input type="text" id="txt">
<button id="btn">确定</button>
<script >
  //量词
  //确定的数量
  //{6}  出现6次
  //{3,6} 出现3-6次
  //{3,} 至少出现3次
  //不确定的数量
  //? 出现0次或者1次
  //+ 至少出现1次
  //* 出现多次或者不出现
  //test() 方法
  //regExp.test(str) 返回boolean
  let txt=document.getElementById("txt")
  let btn=document.getElementById("btn")
  let reg=/^\d+$/

  // btn.onclick=function () {
  //   let value=txt.value
  //   let result=reg.test(value)
  //   alert(result)
  // }
  //或 和分组
  //|表示或
  //()表示分组

  //判断手机号
  // 以+86或0086开头 可有可无
  // 可以有多个空格或者没有
  //号码第一位为1 第二位为3456789中一个 最后9位为数字

  let rr=/1[3456789]\d{9}$/
  let rreg=/^(\+86|0086)?\s*1[3456789]\d{9}$/
btn.onclick=function () {
    let value=txt.value;
    let result=rr.test(value)
  alert(result)
}
  //转义字符  " 用 \"来转义
  //指定位置
  //^正则表达式 以该正则表达式开头
  //正则表达式$ 以该正则表达式结尾

  //将开始位置的空格清空
  let str="   hello  hello"
  let rrr=/^\s+/g
  console.log(str.replace(rrr, ""))

  //排除 [^abc] 除了abc以外的值
  let strr="abc232"
  let regr=/[^abc]/g
  console.log(strr.replace(regr, "*"))
</script>
</body>
  • 3.4过滤

<body>
<textarea name="" id="txt" cols="30" rows="10"></textarea>
<button id="btn">过滤</button>
<script >
  // let reg=/天猫|淘宝/g
  let reg=/<[^<>]*>/g
  let txt=document.getElementById("txt")
  let btn=document.getElementById("btn")
  btn.onclick=function () {
    let value=txt.value;
    let filter=value.replace(reg, "")
    txt.value=filter;

  }
</script>
</body>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,172评论 1 44
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,138评论 0 13
  • 欣儿说完不高兴地转身回自己的屋里去了。欣儿妈妈看着欣儿的背影叹了口气无奈地说,“你咋就这么倔呢?我这样做还不都是为...
    依心随行阅读 201评论 2 0
  • 2007~2017整整十年。大学毕业都十年了。去聚聚吧。不知怎么就坐在了饭馆里,坦然地拉出椅子。旁边已经坐了3个谁...
    贝壳的黑眼圈阅读 263评论 2 3
  • 首先,什么是标签模板字符串呢? 就是在你的模板字符串里面写一个标签,比如说highlight,然后给它制定一些规则...
    Janicerant阅读 1,925评论 0 1