zoukankan      html  css  js  c++  java
  • BOM和DOM

    昨日内容回顾

    js代码引入

     1  方式1:
     2      <script>
     3  4          // alert('澳门皇家赌场上线啦!!!')
     5  6          var a1 = 100;
     7  8      </script>
     9 10  方式2:
    11      <script src='js文件路径'></script>

    变量声明

    1  var a = 10;

    基础数据类型

    数值类型 Number

    1  整数,浮点数,NaN

    字符串

    1  var s1 = 'hello';
    2  var s2 = 'world';
    3  var ss = s1+s2

    字符串的常用方法

     1  var s = 'hello';
     2  var s2 = 'world';
     3  s.length  长度
     4  s.trim()  移除两端空白  s.trimLeft()  s.trimRight()
     5  s.concat()  字符串拼接  s.concat(s2)
     6  s.indexOf() 通过元素找索引 s.indexOf('e')
     7  s.charAt(n) 通过索引找元素  s.charAt(1) -- 'e'
     8  s.slice()  切片  s.slice(1,3)
     9  s.split()  分隔  s.split('e',2) -- ['h','llo']
    10  s.toLowerCase()  全部变小写
    11  s.toUpperCase()  全部变大写
    12

    布尔值

    1  var a = true;
    2  var b = false;
    3  空的数据类型也是false,'',0,NaN,null,undefined..

    null和undefined

    1  null  空值,一般用来清空一个变量值来用
    2  undefined  var a; 声明了变量,还没有赋值,此时这个变量值为undefined

    类型转化

    1  parseInt('111')
    2  parseFloat('1.11')

    复杂数据类型

    数组

    1  var a = [11,22,33];
    2  var a = new Array([11,22,33]);
    3  typeof a;  --- object类型
    4

    数组常用方法

     1  a[1]  -- 1是索引,索引取值
     2  a.length  -- 数组长度
     3  a.push()  尾部追加 a.push('aa') 
     4  a.pop()   尾部删除
     5  a.unshift() 头部追加 a.unshift('aa') 
     6  a.shift() 头部删除
     7  a.sort()  排序
     8      function sortNumber(a,b){ return a - b; } 升序  a.sort(sortNumber)
     9  a.slice()  切片
    10  a.splice()  删除元素  a.splice(索引,删除几个,新值)  a.splice(1,2,'aa','bb')
    11  a.reverse()  反转 -- 原数组上反转
    12  a.join('+')  元素拼接
    13  a.concat() 
    14      var b = ['aa','bb']
    15      a.concat(b)  -- 类似python的extend
    16

    自定义对象

    1  var a = {'name':'chao',age:18}
    2  a.namea['name']  取值
    3 4  for (var i in a){
    5      console.log(i,a[i])
    6  }
    7  

    运算符

    算数运算符

    1  + - * / % ++ --   a++ 和 ++a的区别,a++ 先执行后面的逻辑,在执行加一操作.++a相反
    2                    a-- --a都是减一操作

    比较运算符

    1  > >= < <= != !== == ===

    逻辑运算符

    1  &&  ||  !  与 或 非

    赋值运算符

    1  += -= *= /=

    流程控制

    if

     1 var a = 10;
     2 if (a>5){
     3     console.log(11)
     4 }
     5 else{
     6     ...
     7 }
     8 
     9 多条件判断
    10 if (a>5){
    11     console.log(11)
    12 }
    13 else if (a===5){
    14     ...
    15 }
    16 else{
    17     ...
    18 }

    switch 切换

     1 var a = 10;
     2 switch (a){
     3     case 10:
     4         ...
     5         break;
     6     case 11:
     7         ...
     8         break;
     9     default:
    10         do something!
    11 }
    12 
    13 
    14 switch (a){
    15     case 10:
    16         console.log('bbbb')  case 10成立的话,执行case 10后面的内容,和case 10: case 11:两个条件共同要执行的那段代码,条件成立一个就行
    17     case 11:
    18         console.log('aaaa')
    19         break;
    20     default:
    21         console.log('do something!')
    22 }

    while

    1 var a = 0;
    2 while (a<10){
    3     console.log(a);
    4     a++;
    5 }

    三元运算符

    1 var a = 1;
    2 var b = 2;
    3 var c = a > b ? a : b;

    for

     1 for (var i=0;i<10;i++){
     2     console.log(i);
     3 }
     4 var d = [11,22,33];
     5 循环遍历数组
     6 方式1
     7 for (var i in d){   // i是索引,python中的 for i in [11,22,33]:print(i) i都是元素
     8     console.log(i,d[i]);  
     9 }
    10 方式2
    11 for (var i=0;i<d.length;i++){
    12     console.log(i,d[i]);
    13 }
    14 
    15 循环遍历自定义对象
    16 var a = {'name':'dazhuang',age:18}
    17 for (var i in a){
    18     console.log(i,a[i]);
    19 }
    20 
    21  

    函数

     1 function f1(){
     2     console.log('红旭!');
     3 }
     4 function f1(a,b){
     5     console.log('红旭!');
     6     return '红旭妹妹!'
     7 }
     8 f1(1,2) 执行
     9 
    10 匿名函数
    11 var sum = function(a,..){
    12     console.log('红旭妹妹想唱歌!')
    13 };
    14 sum(1,...)
    15 
    16 自执行函数
    17 (function (a,..){...})(1,...)

    作用域

    1 函数变量,从自己那一层逐层往外找

    闭包

    1 function outer(){
    2     var o = 10;
    3     function inner(){
    4         console.log(o);
    5     }
    6     return inner;
    7 }
    8 var ret = outer();
    9 ret()

    面向对象

     1 function Person(a,b){
     2     this.a = a;  this--python 的 self
     3     this.b = b;
     4 }
     5 Person.prototype.f1 = function (c,d){return c+d;}
     6 
     7 var p = new Person('aa','bb')
     8 
     9 p.a -- 'aa'
    10 p.f1(1,2)

    Date对象

    1 var d = new Date(); 当前时间日期对象
    2 d.toLocaleString(); -- 2019/7/4  上午9:32
    3 var d = new Date('2019/7/2 12:00');
    4 d.toLocaleString(); -- 2019/7/2  中午12:00

    date对象的常用方法

    1 d.getDate() -- 4
    2 d.getDay() ---4
    3 //getMonth ()               获取月(0-11,0表示1月,依次类推)
    4 //getFullYear ()            获取完整年份
    5 //getHours ()               获取小时
    6 //getMinutes ()             获取分钟
    7 //getSeconds ()             获取秒
    8 //getMilliseconds ()        获取毫秒
    9 //getTime ()                返回累计毫秒数(从1970/1/1午夜),时间戳

     

    json对象

    1 序列化
    2 var d = {'xx':'xx'};
    3 var dStr = JSON.stringify(d) -- '{"xx":"xx"}'
    4 
    5 反序列化
    6 var d = '{"xx":"xx"}';
    7 var dd = JSON.parse(d) -- {"xx":"xx"}

    正则RegExp

     1 var s = 'hello';
     2 var s2 = 'alex a';
     3 var a = /^a/;
     4 var a = new RegExp("^a")
     5 a.test(s) -- false
     6 a.test(s2) -- true
     7 a.test() -- 不写参数,里面默认放一个"undefined"字符串
     8 
     9 s2.match(/a/g)  --['a','a']
    10 s2.split(/a/g)  字符分隔  
    11 s2.replace(/a/gi,'sss');
    12 s2.search(/a/) -- 找索引位置

    Math内置模块

     1 Math.abs(-1) -- 1
     2 exp(x)      返回 e 的指数。
     3 floor(x)    小数部分进行直接舍去。
     4 log(x)      返回数的自然对数(底为e)。
     5 max(x,y)    返回 x 和 y 中的最高值。
     6 min(x,y)    返回 x 和 y 中的最低值。
     7 pow(x,y)    返回 x 的 y 次幂。
     8 random()    返回 0 ~ 1 之间的随机数。
     9 round(x)    把数四舍五入为最接近的整数。
    10 sin(x)      返回数的正弦。
    11 sqrt(x)     返回数的平方根。
    12 tan(x)      返回角的正切。

     

    今日内容

    BOM 浏览器对象模型

    window对象的子对象中的location

    1 location.href   获取当前url:"https://www.cnblogs.com/clschao/articles/10092991.html"
    2 location.href="URL" // 跳转到指定页面
    3     示例:location.href = 'http://www.baidu.com';直接跳转到百度
    4 location.reload() 重新加载页面,就是刷新一下页面

    计时器相关(计时器是异步的)

    setTimeout 计时器,一段时间之后做某些事情

    1 setTimeout('confirm("你好");',3000);  #3秒之后执行前面的js代码
    2 setTimeout(confirm('xxx'),3000);  #如果写的不是字符串,会直接执行
    3 setTimeout(function(){confirm('xxx')},3000);  #最好写成函数
    4 
    5 var a = setTimeout(function(){console.log('xxx')},3000);  #a是浏览器来记录计时器的一个随机数字
    6 clearTimeout(a)  #清除计时器,通过这个数字可以清除

    setInterval 计时器,每隔一段时间做某些事情

    1 var a = setInterval(function(){console.log('xxx')},3000);  
    2 clearInterval(a);

     

    DOM

    选择器

    直接查找

     1 document.getElementById           根据ID获取一个标签
     2 document.getElementsByClassName   根据class属性获取(可以获取多个元素,所以返回的是一个数组)
     3 document.getElementsByTagName     根据标签名获取标签合集
     4 示例:
     5     <div class="c1" id="d1">
     6         待到将军归来日,朕与将军解战袍!
     7     </div>
     8 
     9     <div class="c1" id="d2">
    10         日照香炉生紫烟,遥看瀑布挂前川!
    11     </div>
    12     
    13     var a = document.getElementById('d1');  # 获取id属性值为d1的标签  拿到的直接是标签对象
    14     var a = document.getElementsByClassName('c1'); #获取class值为c1的所有标签  拿到的是数组
    15     var a = document.getElementsByTagName('div');  #获取所有div标签  拿到的是数组
    16     
    17     

    间接查找

    1 var a = document.getElementById('d1');
    2 a.parentElement; #获取a这个标签的父级标签.
    3 children                 所有子标签
    4 firstElementChild        第一个子标签元素
    5 lastElementChild         最后一个子标签元素
    6 nextElementSibling       下一个兄弟标签元素
    7 previousElementSibling   上一个兄弟标签元素

     

    节点操作

     1 创建节点(创建标签) 
     2     var a = document.createElement('标签名称'); 
     3     示例,创建a标签
     4         var a = document.createElement('a');
     5     var dd = document.getElementById('dd'); 找到div标签
     6     
     7 添加节点
     8     #添加节点,添加到了最后
     9     dd.appendChild(a);将创建的a标签添加到dd这个div标签里面的最后.
    10 
    11     #在某个节点前面添加节点
    12     父级标签.insertBefore(新标签,某个儿子标签)
    13     示例
    14         var dd = document.getElementById('dd');  #找到父级标签
    15         var a = document.createElement('a');   #创建一个新的a标签
    16         var d2 = dd.children[1];  #找到父级标签下的某个儿子标签
    17         dd.insertBefore(a,d2);   #将a标签插入到上面这个儿子标签的前面.
    18 删除节点
    19     dd.removeChild(d2);  父级标签中删除子标签
    20         
    21 替换节点
    22     var dd = document.getElementById('dd');  #找到父级标签
    23     var a = document.createElement('a');  #创建a标签
    24     a.innerText = '百度';  
    25     var d1 = dd.children[0];  #找到要被替换的子标签
    26     dd.replaceChild(a,d1);  #替换
    27     

    文本操作

    1 d1.innerText; 查看
    2 
    3 设置:
    4     d1.innerText = "<a href=''>百度</a>";  
    5     d1.innerHTML = "<a href=''>百度</a>";  能够识别标签

     

    属性操作

    1 var divEle = document.getElementById("d1");
    2 divEle.setAttribute("age","18")  #比较规范的写法
    3 divEle.getAttribute("age")
    4 divEle.removeAttribute("age")
    5 
    6 // 自带的属性还可以直接.属性名来获取和设置,如果是你自定义的属性,是不能通过.来获取属性值的
    7 imgEle.src
    8 imgEle.src="..."

     

    值操作

     1 var inp = document.getElementById('username');
     2 inp.value;  #查看值
     3 inp.value = 'taibai'; #设置值
     4 
     5 选择框:
     6     <select name="city" id="city">
     7         <option value="1">上海</option>
     8         <option value="2">北京</option>
     9         <option value="3">深圳</option>
    10     </select>
    11     
    12     var inp = document.getElementById('city');
    13     inp.value;  #查看值
    14     inp.value = '1';  #设置值
    15     
    16  

    class的操作

    1 var d = document.getElementById('oo'); 
    2 d.classList;  #获得这个标签的class属性的所有的值
    3 d.classList.add('xx2');  #添加class值
    4 d.classList.remove('xx2'); #删除class值
    5 d.classList.contains('xx2');  #判断是否有某个class值,有返回true,没有返回false
    6 d.classList.toggle('xx2');  #有就删除,没有就增加

    css操作

    1 var d = document.getElementById('oo');
    2 d.style.backgroundColor = 'deeppink';  有横杠的css属性,写法要去掉横杠,并且横杠后面的单词首字母大写
    3 d.style.height = '1000px'

    事件

    绑定事件的方式有两种

    方式1:

    1 <div id="d1" class="c1" onclick="f1();"></div>
    2 
    3 <script>
    4     function f1() {
    5         var d = document.getElementById('d1');
    6         d.style.backgroundColor = 'yellow';
    7     }
    8 
    9 </script>

    方式2

    1     <div id="d1" class="c1"></div>
    2 
    3     var d = document.getElementById('d1');
    4     d.onclick = function () {
    5         d.style.backgroundColor = 'yellow';
    6     }
    7 
    8  

    事件里面的this

    绑定方式1:

     1 this表示当前标签对象
     2 <div id="d1" class="c1" onclick="f1(this);"></div>
     3 function f1(ths) {
     4         // var d = document.getElementById('d1');
     5         // d.style.backgroundColor = 'yellow';
     6         ths.style.backgroundColor = 'yellow';
     7 
     8         var d = document.getElementById('d2');
     9         d.style.backgroundColor = 'yellow';
    10     }

    方式2:

    1  <div id="d1" class="c1"></div>
    2     
    3     var d = document.getElementById('d1');
    4     d.onclick = function () {
    5         this.style.backgroundColor = 'yellow';
    6         // d.style.backgroundColor = 'yellow'; //this表示当前标签对象
    7     }

    onblur和onfocus事件

     1  var inp = document.getElementById('username');
     2     inp.onfocus = function () {
     3         var d = document.getElementById('d1');
     4         d.style.backgroundColor = 'pink';
     5     };
     6     // onblur 失去光标时触发的事件
     7 
     8     inp.onblur = function () {
     9         var d = document.getElementById('d1');
    10         d.style.backgroundColor = 'green';
    11     };

    onchange事件,域内容发生变化时触发

     1 <select name="" id="jishi">
     2     <option value="1">太白</option>
     3     <option value="2">alex</option>
     4     <option value="3">沛齐</option>
     5 
     6 </select>
     7 
     8 // onchange事件,内容发生变化时触发的事件
     9     var s = document.getElementById('jishi');
    10     s.onchange = function () {
    11         //this.options  select标签的所有的option标签
    12         //this.selectedIndex被选中的标签在所有标签中的索引值
    13         console.log(this.options[this.selectedIndex].innerText + '搓的舒服');
    14     }
    15     
    16     
    17 用户名:<input type="text" id="username">    
    18 
    19     //input标签绑定onchange事件
    20     var inp = document.getElementById('username');
    21     inp.onchange = function () {
    22         console.log(this.value);  
    23     };    
    24  

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    java集合-方法
    Java线程池
    java疯狂讲义第18章类的加载和反射
    java疯狂讲义第16章多线程
    JAVA集合-HashMap的实现原理
    类加载-java new一个对象的过程发生了什么/Java对象创建过程
    JVM-java垃圾回收
    JVM-java内存区域
    JVM-java堆-新生代和老年代
    448. 找到所有数组中消失的数字
  • 原文地址:https://www.cnblogs.com/zhangxiangning/p/11196089.html
Copyright © 2011-2022 走看看