Bom基本知识

125 阅读5分钟

rem改变屏幕大小

 let title = document.querySelector('title')
        // 给window设置监听事件
       window.addEventListener('resize',function(event){
       为window设置 监听
           document.documentElement.style.fontSize =
           设置HTML根标签随着屏幕大小不同 再除以10,10rem等于整个屏幕的大小
           document.body.offsetWidth/10 +'px'
           let width = document.body.offsetWidth
           把body 从左上角视口到整个屏幕的大小赋值给width
           if(width > 1200){
           进行判断,要是达到一定的条件,就会缩小页面大小
               title.innerText = `大屏幕${width}`
           }else if(width > 922){
               title.innerText = `中屏幕${width}`
           } else if(width > 768){
               title.innerText = `小屏幕${width}`
           }else{
               title.innerText = `极小屏幕${width}`
           }
          
       })

本地储存

localStorage.seItem ('自定义属性',要设置的值,必须是字符串格式)

存储一个本地数据 localStorage.setItem('key','123')

获取上面的自定义属性 let k = localStorage('key')

localStorage.getItem(k) 获取 当前本地存储

localStorage.removeItem(key) 删除当前本地存储

localStorage.clear() 情况本地存储

本地存储2

// 如果本地存储里面没有这个数据,那么打印出来的就是空值 null
​
        let str = localStorage.getItem('fagag')
        console.log(JSON.parse(str));
        // 会输出个空值
/* 
      本地存储 存储数据类型 不管你传入什么类型都好,最终都被它转换成 字符串类型
​
      本地存储 存储复杂类型 引用类型的数据 会出现数据丢失的问题 固定规则来着
      (我们的菜篮子 只能用来装青菜 你用来装水  我不管--- */
​
    //  数组 对象
    // localStorage.setItem('aaa',123)
    // 创建了一个本地存储
  
    // let aaa = localStorage.getItem('aaa')
    //    把创建的本地存储获取过来 ,然后输出 是个 string 
    // console.log(typeof aaa);
    // console.log(aaa);
    // 输出本地存储
    // 获取本地存储
​
    // const obj = {name : '路飞'}
    //  localStorage.setItem('obj',obj)
    //  把对象数据存在本地存储
    // let newObj = localStorage.getItem('obj')
    //  把本地存储数据获取出来并赋值给newObj
    // console.log(newObj);
    // 输出本地存储,是一个对象
​
    // 在行业中我们会这样做
    // 1 还是正常定义对象
    const objstr = {
        name:'邓',
        height: 155,
        
    }
    // 存储到本地存储当中
    const objsr = JSON.stringify(objstr)
    // 把 对象转换成一个字符串,
    localStorage.setItem('objssr',objsr)
    // 把对象转换成的字符串 存储到本地存储中
    let objs = localStorage.getItem('objssr')
    // 获取本地存储并赋值给objs
    console.log(objs);
    // 输出objs
    const objsssr = JSON.parse(objs)
    // 重新把这个字符串解析变成原来的obj类型
    console.log(objsssr);
    // 输出对象
​
    // 1 本地存储无法存放 复杂类型的数据 
    // 2 复杂类型的数据 通过JSON对象  字符串 相互之间的转换 
    
​
​

sessionStorage本地存储

本地存储的技术 sessionStorage 这个和本地存储不一样的是,只要我们关闭了

页面,这个本地存储就会自动删除 ,而本地存储是,只要我们不清除,就会一直存在

直至天荒地老

用法和localStorage 本地存储一样

存个数据

sessionStorage.setItem("key",3214)

创建一个本地存储

console.log(sessionStorage.getItem('key'));

取数据*

输出一个本地存储key 里面的 值 3214

sessionStorage.removeItem('key')

删除sessionStorage本地存储

sessionStorage.clear()

元素属性

       a.href = 'http://www.qq.com'
        // 修改 属性值
       //  a.id = 'bb'
        // 修改id属性值
        
        // 自定义属性 不能直接通过 元素. 属性 语法来获取和设置    
        
        // 获取 getAttribute ('属性名')
        //console.log(a.hoee);
        // 自定义属性不能直接 这样输出和设置 ,内置属性才可以 ,就是标签原有的属性 id           href src
        // 想要输出a . hoee 必须 向下面这样写法
        // console.log(a.getAttribute('hoee'));
    //    输出自定义hoee属性里面得值
       // console.log(a.getAttribute('cc'));
        // 这样子就成功输出了
​
        // 设置 setAttribute (属性名,属性值)
         // a.setAttribute('hoee','2313');
        // setAttribute 是指定一个现有得自定义hoee属性 修改你想要得属性值
​
        // 删除属性 remosveAttribute (属性名)
       // a.removeAttribute('hoee')
        // 已经删除调 a标签里面得 自定义属性 hoee了
​
       /*  自定义属性 用h5建议的比较好
        属性固定语法 data-自定义属性 = '自定义属性的值'
        比前面两个方便,这个既可以获取,又可以修改属性值 */
        // 获取自定义属性的值== a.dataset.xxx
       // console.log(a.dataset.ssr);
        // 修改自定义属性的值 a.dataset.自定义属性名 = '自定义属性值'
       // a.dataset.ssr = '22222'
​
      // 最大强的是 (getAttribute)这个功能,可以获取到我们自定义 或 内置属性的 值
      // console.log(a.getAttribute('data-ssr'));
       //console.log(a.getAttribute('id'));
       //console.log(a.getAttribute('hoee'));
​
        

区分属性和方法

属性是带 = 号 不带括号的

document.body.style.backgroundColor = 'red'

方法是带() 不带等于号的*

document.body.push()

事件绑定-取消绑定

let button = document.querySelector('button')
        function cc(){
            console.log('I Love You');
        }
        function ii(){
            console.log('我想要吃');
        }
        button.addEventListener('click',cc)
        button.addEventListener('click',ii)
                                    //  可以把函数直接调给绑定事件,我们触发事件,函数就会调用执行
        // 一个元素可以绑定多个事件
       
            setTimeout(function(){
                // 取消这个事件绑定 
                // 设置了个延时器 ,设置了5秒 ,五秒这行 ,将会取消这个事件绑定
                button.removeEventListener('click',ii)
               },5000)
         
        
        

字符串方法

 // let str = 'DFAFGAGGGMAMOLE'
       // console.log(str.toUpperCase()); // toUpperCase 表示把字符串转大写
       // console.log(str.toLowerCase()); // toLowerCase 表示把字符串转小写
        
      let arr = '1236735'
      console.log(arr.split(''))
      /*  console.log(arr.splice("")); 表示把字符串转成一个数组,splice() 括号里面表示
       需要分隔的符号,那么我们字符串"" 号串起来的,括号里面填"" 即可分隔变成一个数组 */
​
       let arr1 = '1-f-5-b-dc-s-gh-5'
        console.log(arr1.split('-'));
       // 把一个字符串 转换成 数组
​
      /*  1 转大写  toUpperCase()
​
        2 转小写 toLowerCase()
​
        3 转数组 str.split('') 按照什么来分割你的字符串变成数组 */

正则语法

  let sky = `青春 ,邓,你现在在哪里,喜欢你`
        const ty = /邓/
       console.log( ty.test(sky));
     /*   变量1.test(其他变量2),判断变量2里面是否有变量1 符合的值 ,匹配上了为true
       匹配不上则为false */
​
     let i = `一辈子这么长,现在不努力什么时候才肯努力?`
     const c = /努力/
   console.log( c.test(i));

边界符

   let str = '邓钰莹'
        let sky = /^邓/
      // 1 ^符号代表的是字符串 匹配第一个值 ,$符号是表示代表字符串匹配最后一个值
      // 2 ^第一个字符配上上去,那么第二个字符也要相对应于你要匹配字符串的对应一模一样的值 ,才能返回true
      // 3 ^如果你只是匹配第一个值,第一个值你和匹配的值相对应了 就会返回true
       console.log( sky.test(str));
       let i = '梁祺星'
       let c = /梁祺星$/
       console.log( c.test(i));
     /*   边界符 
      开头 ^ 
      结尾 $  */

量词

 *// /[a-z]/表示从a - z 都循环了一遍 a 到 z之间所有的字母都可以匹配到*
​
•    *// console.log(/[a-z]/.test('m'));*
​
•    console.log(/[0-100]/.test(''));

字符

3c4e45783c0ae2049a33aa891b33812

// const str="路飞";
      // const reg=/路飞/;
      // console.log(reg.test(str));

      //  *  表示 放在它前面那一个字符 可以出现0次或者多次
      // /^路*$/   => "",  路,路路,路路路
      // console.log(/^路*$/.test('')); // true
      // console.log(/^路*$/.test('路')); // true
      // console.log(/^路*$/.test('路路')); // true
      // console.log(/^路*$/.test('路路路')); // true

      // + 表示 放在它前面那一个字符 可以出现1次或者多次
      // console.log(/^路+$/.test(''));
      // console.log(/^路+$/.test('路'));
      // console.log(/^路+$/.test('路路'));
      // console.log(/^路+$/.test('路路路'));

      // ? 表示出现0次或者1次
      // console.log(/^路?$/.test(''));// true
      // console.log(/^路?$/.test('路')); // true
      // console.log(/^路?$/.test('路路')); // false
      // console.log(/^路?$/.test('路路路')); // false

      // {n} 放在它前面的那一个字符 出现n次
      // console.log(/^路{2}$/.test('')); // false
      // console.log(/^路{2}$/.test('路')); // false
      // console.log(/^路{2}$/.test('路路')); // true
      // console.log(/^路{2}$/.test('路路路')); // false

      // {n,} 放在它前面的字符 最少出现n次
      // console.log(/^路{2,}$/.test('')); // flase
      // console.log(/^路{2,}$/.test('路')); // flase
      // console.log(/^路{2,}$/.test('路路'));// true
      // console.log(/^路{2,}$/.test('路路路')); // true

      // {n,m} 放在它前面的字符 最少出现n次,最大是m次
      console.log(/^路{2,3}$/.test('')); // false
      console.log(/^路{2,3}$/.test('路'));  // false
      console.log(/^路{2,3}$/.test('路路')); // true
      console.log(/^路{2,3}$/.test('路路路'));  // true 

\