[Js]常识二

文章目录

    • 日期时间
    • DOM节点
    • DOM CRUD
    • M端事件(了解)
    • swiper插件(了解)
    • Window对象模型
    • 定时器
    • 事件循环EventLoop(js原理)
    • location对象
    • navigator对象
    • history对象
    • localstorage(重点)
    • sessionStorage
    • 正则
      • 正则基础
      • 元字符

日期时间

[Js]常识二_第1张图片
[Js]常识二_第2张图片

DOM节点

[Js]常识二_第3张图片
无他,了解几个API

  • parentNode
  • children
  • nextElementSibling
  • previousElementSibling

DOM CRUD

  • 常规CRUD
  • 克隆节点[Js]常识二_第4张图片
  • 删除节点
    [Js]常识二_第5张图片

M端事件(了解)

[Js]常识二_第6张图片

swiper插件(了解)

Window对象模型

[Js]常识二_第7张图片
[Js]常识二_第8张图片

定时器

  • setTimeout
  • setTimeInterval

事件循环EventLoop(js原理)

[Js]常识二_第9张图片
经典面试题:

<script>
   console.log(1);
    setTimeout(function(){
        console.log(3)
    },0)
   console.log(2)
</script>
会打印结果 1  2  3, 注意不是 1  3  2 ,
setTimeout即使参数为timeout=0,也是异步的。这和java的ScheduleService还是有点差异的

location对象

location.href = "http://www.baidu.com/"  //跳转到这个地址

这个场景:支付成功5s后返回

location.reload()
location.search()
location.hash()

navigator对象

[Js]常识二_第10张图片

history对象

[Js]常识二_第11张图片

localstorage(重点)

[Js]常识二_第12张图片
[Js]常识二_第13张图片

  • Localstorage只能被同一个域的多个页面共享,也就是说,跨域不能共享
  • localstorage只存储kv都是字符串,setItem()的参数会自动转为字符串;要是存储复杂数据结构,可以使用json str
    [Js]常识二_第14张图片

sessionStorage

[Js]常识二_第15张图片

正则

正则基础

[Js]常识二_第16张图片
[Js]常识二_第17张图片
[Js]常识二_第18张图片

元字符

[Js]常识二_第19张图片
元字符分类:
[Js]常识二_第20张图片

console.log(//.test('哈哈哈')) //true
console.log(/^哈$/.test('哈哈'))//false 【注意是精确匹配了】
console.log(/^哈$/.test('哈')) //true

1.边界符
典型就是 ^$
[Js]常识二_第21张图片

// 【正则 /^哈*$/ 表示字符串开头必须是零或者多个'哈',
// 同时字符串末尾也必须是零或多个'哈'】
console.log(/^哈*$/.test('哈哈')) //true 
console.log(/^哈*$/.test('哈大'))//false
console.log(/^哈*$/.test(''))//true

console.log('================================');
// 【正则 /^哈+$/ 表示字符串开头必须是一个或者多个'哈',
// 同时字符串末尾也必须是一个或多个'哈'】
console.log(/^哈+$/.test('哈哈')) //true 
console.log(/^哈+$/.test('哈'))//true
console.log(/^哈+$/.test('哈大哈'))//false
console.log(/^哈+$/.test(''))//false

// 出现且只出现二次
console.log(/^哈{2}$/.test('哈'))  //false
// 出现 2 到 6次均可
console.log(/^哈{2,6}$/.test('哈哈'))  //true
// 不能乱入其他 字符
console.log(/^哈{2,6}$/.test('哈大哈'))  //false
// 至少出现2次
console.log(/^哈{2,}$/.test('哈哈哈')) //true

[Js]常识二_第22张图片
[Js]常识二_第23张图片
[Js]常识二_第24张图片


// 字符串只要返回 至少一个 abc 中的字符都返回 true
// 注意:是只要返回至少一个abc中的任意一个字符
console.log(/[abc]/.test('a')); //true
console.log(/[abc]/.test('ab'));//true
console.log(/[abc]/.test('abddd'));//true

// 加了^和$,限定了边界;表示 只有一个字符,且必须是
// abc  其中的一个。
console.log(/^[abc]$/.test('a')); //true
console.log(/^[abc]$/.test('ab')); // false

// 加了 量词,限定了字符重复次数,表示可以是 零或 多个字符,且必须是
// abc其中一个
console.log(/^[abc]*$/.test('a'));//true
console.log(/^[abc]*$/.test('ab'));//true
console.log(/^[abc]*$/.test('aaaa'));//true

//表示是零个或多个小写字母
console.log(/^[a-z]*$/.test('ab'));//true
//乱入了字符,返回false
console.log(/^[a-z]*$/.test('ab哈'));//false

//表示只能是英文大小写和数字之中的任意【一个】字符
console.log(/^[a-zA-Z0-9]$/.test('ab'));//false
console.log(/^[a-zA-Z0-9]$/.test('P'));//true
console.log(/^[a-zA-Z0-9]$/.test('p'));//true
console.log(/^[a-zA-Z0-9]$/.test('0'));//true

//表示只能是英文大小写和数字之中的【零个或多个】字符
console.log(/^[a-zA-Z0-9]*$/.test('0'));//true
console.log(/^[a-zA-Z0-9]*$/.test(''));//true

  • 一定要注意取反符号 ^[] 和 边界符号[^]的区别
  • 还有个字符. 表示除了换行符之外所有字符

案例:
用户名校验:只能输入英文大小写、短横线、下划线,并且用户名为6~16位长的字符串。

// 一定牢记: [] 这个中括号表示的N选一
const reg = /^[a-zA-Z0-9-_]{6,16}$/
console.log(reg.test('a999')) //false 长度不够
console.log(reg.test('a99999')) //true
console.log(reg.test('a______'));//true ,除了第一个字符,其余都是下划线
console.log(reg.test('a-------')) //true,除了第一个字符,其余都是短横线

[Js]常识二_第25张图片

你可能感兴趣的:(前端,javascript)