zoukankan      html  css  js  c++  java
  • Javascript基础

    Javascript有以下三个部分组成:

    • 核心 ECMAScript
    • 文档对象模型DOM:Document object model(整合js,css,html)
    • 浏览器对象模型BOM:Broswer object model(整合js 和浏览器)

    JS的引入方式:

    1. 直接编写:
        <script>
          
          altert('hello world')
      </script>
    2. 导入文件
       <script src="hello.js"></script>

    JS的变量、常量和标识符:

    1. 变量:全部使用var关键字;(注:变量如果只声明未赋值,打印出    undifind)
      1. 声明变量时,如果不用var,则表示它是全局变量
      2. 变量命名,首字符只能是字母,下划线,$美元符 三选一余下的字符可以是下划线、美元符号或任何字母或数字字符且区分大小写,x与X是两个变量 

      3. 命名规范:驼峰形 camel  var myTestValue 或 MyTestValue
                       Passcal: 变量类型的简称+大驼峰命名
    2. /*  多行注释
       */
      // 单行注释
      // 变量先声明再使用.每条命令用分号隔开
      var  i;
      i = 3;
      var j =3;
      var name='egon', age=25; //一行声明多个变量
    3. 常量:直接在程序中出现的数据值
    4. 标识符:
      1. 由不以数字开头的字母、数字、下划线(_)、美元符号($)组成
      2. 常用于表示函数、变量等的名称
      3. 例如:_abc,$abc,abc,abc123是标识符,而1abc不是
      4. JavaScript语言中代表特定含义的词称为保留字,不允许程序再定义为标识符

    JS的数据类型:

    基本数据类型:number;string;boolean;null;undefind 

    Undefind :
    • 当变量只声明未赋值的时候,得到undefind;
    • 函数没有返回值时,默认返回undefined (类似python里函数默认返回none一样)

    引用数据类型:object

    JS的运算符:

    算术运算符:
        +   -    *    /     %       ++        -- 
     x++  =  ++x   =    x+=1   
    var x = 10;
    var ret = x++;   x++ 先赋值再计算
    var ret1 = ++x;  ++x 先计算再赋值
    比较运算符:
        >   >=   <    <=    !=    ==    ===   !==
    ===全等于,值和类型都相等; == 等性运算,只判断值是否相等
    NaN:属于number类型,当遇到将字符串转换成数字无效时,返回NaN
    js是弱类型定义语言,可以直接将字符串转换为数字。
    等性运算符:执行类型转换的规则如下:
    
    如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0,true 为 1。 
    如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。 
    如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。 
    如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。 
    在比较时,该运算符还遵守下列规则:
    
    值 null 和 undefined 相等。 
    在检查相等性时,不能把 null 和 undefined 转换成其他值。 
    如果某个运算数是 NaN,等号将返回 false,非等号将返回 true。 
    如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回 true,否则两个运算数不等。 
    等性运算规则
    逻辑运算符:
         && 与  ||或   !非
    
    赋值运算符:
        =  +=   -=  *=   /=
    
    字符串运算符:
        +  连接,两边操作数有一个或两个是字符串就做连接运算

    js的流程控制
    • 顺序结构:
          <script>
              console.log(“星期一”);
              console.log(“星期二”);
              console.log(“星期三”);
          </script>
    • 分支结构:
      • if else     if (条件表达式){执行语句}      Else if (条件表达式) {执行语句}           Else {实现语句}
        var num=67;
        if (num>90){alert('优秀')}
        else if ( 80<=num<=90){alert('良好')}
        else {alert('及格')}
      • Switch case
        var week=5;
        switch (week){case 1:console.log('星期一');break;
                      case 2:console.log('星期二');break;
                      case 3:console.log('星期三');break;
                      case 4:console.log('星期四');break;
                      case 5:console.log('星期五');break;
                      case 6:console.log('星期六');break;
                      case 7:console.log('星期日');break;
                      default:console.log('非法输入')
                        }
    • 循环结构----
        Break:终止整个循环
        Continue:终止单次循
      • for循环---条件循环
      • for(var i=0;i<10;i+=1){alert('ok')}
      • for循环---遍历循环
        var arr = [111,222,333];
        for (var i in arr){
        console.log(i,arr[i])}
      • while循环 
        var a=0;
        var sum=0;
        while(a<100){a+=1;sum+=a;console.log(b)}

    异常处理:

    * try {//这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行}
    * catch (e) {// 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。   //e是一个局部变量,用来指向Error对象或者其他抛出的对象}
    * finally {//无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。}

    JS中的对象:

    1. String 对象
      //  创建字符串对象
          s='hello world';
          s1 = new String('hello world');
      
      //    字符串对象的属性和函数
          console.log(typeof s,typeof s1);  //查看类型
          alert(s1.length); //求长度
          alert(s1.toLowerCase());//转成小写,相当于python里的lower()
          alert(s1.toUpperCase());//转成大写,相当于python里的upper()
              alert(s1.trim());//去两边的空格和换行符,相当于python里的strip()
      //字符串查询方法:
          alert(s1.charAt(4)); //查看索引4的值 相当于python的s[4]
          alert(s1.indexOf('e')); //查看值对应的索引,相当于python的index(),默认从左开始找
          alert(s1.lastIndexOf('d'));//查看值对应的索引,从右开始找
          alert(s1.match('world'));//match 匹配出相应的内容,world
          alert(s1.search('world'));//search 匹配出字符串的首字母的位置索引
          alert(s1.substr(1,4)); // substr(start,length)
              
          alert(s1.substring(1,4));// substring(start,end) 切片
          alert(s1.slice(1,4));//slice(start,end) 和substring 功能相同,切片
              
          alert(s1.concat('mona'));//concat 字符串拼接
      string 对象
    2. Array 元组对象
                                                   
              创建数组                                 
              var l1=[111,222,33];                 
              var l11= new Array([111,222,333]);   
              alert(typeof l11);                   
                                                   
      数组的属性和方法                                     
              l2=['hello','world'];                
              l2.join('-');                        
                                                   
      原生类的 toString()转成字符串                         
                                                   
              var l3=[1,2,3,4,5];                  
              l3.reverse()//反转                     
              alert(l3.sort()) //默认最高位的assic码      
                                                   
      splice 删除  splice(start,length);             
                 l3.splice(1,2);                   
                  alert(l3);                       
      增删元素                                         
              var l=[11,22,44,66];                 
       push & pop  从末尾增删                           
              l.push(99);                          
              alert(l);                            
              alert(l.pop())                       
                                                   
      shift & unshift  从数组前面增删                     
              var l=[11,22,3,3,55];                
              l.shift(); //delete                  
              alert(l);                            
              alert(l.unshift(999));  //add        
              alert(l)                             
      数组的属性和方法
    3. Date 对象
       // 方法一:不指定参数
      //        var mydate = new Date();
      //        alert(mydate.toString());
              //参数为日期字符串
      //        var mydate = new Date('2008/08/08 08:08');
      //        alert(mydate.toLocaleDateString())
      //          参数为毫秒,即时间戳
      //          var mydate = new Date(50000);
      //          alert(mydate.toLocaleDateString())
              // 参数为年月日小时分钟秒毫秒
      //            var mydate = new Date(2004,2,20,11,12,0,99);
      //            alert(mydate.toLocaleDateString())
              // Date对象的方法----获取日期和时间
                  var mydate = new Date();
                  var date = mydate.getDate();
                  var week = mydate.getDay(); // 获取星期几
                  var mon = mydate.getMonth();
                  var year = mydate.getFullYear();
                  var hour = mydate.getHours();
                  var seconds = mydate.getSeconds();
                  var time = mydate.getTime(); //获取时间戳时间
      
              // Date对象的方法----设置时间和日期:
                  var x = new Date();
                  x.setFullYear(2008);
                  x.setMonth(8);
                  x.getDate(8);
      时间对象的属性和方法
    4. Math 对象
      //该对象中的属性方法 和数学有关.
         
      
      abs(x)    返回数的绝对值。
      exp(x)    返回 e 的指数。
      floor(x)对数进行下舍入。
      log(x)    返回数的自然对数(底为e)。
      max(x,y)    返回 x 和 y 中的最高值。
      min(x,y)    返回 x 和 y 中的最低值。
      pow(x,y)    返回 x 的 y 次幂。
      random()    返回 0 ~ 1 之间的随机数。
      round(x)    把数四舍五入为最接近的整数。
      sin(x)    返回数的正弦。
      sqrt(x)    返回数的平方根。
      tan(x)    返回角的正切。
      
      //方法练习:
              //alert(Math.random()); // 获得随机数 0~1 不包括1.
              //alert(Math.round(1.5)); // 四舍五入
              //练习:获取1-100的随机整数,包括1和100
                   //var num=Math.random();
                   //num=num*10;
                   //num=Math.round(num);
                   //alert(num)
              //============max  min=========================
              /* alert(Math.max(1,2));// 2
              alert(Math.min(1,2));// 1 */
              //-------------pow--------------------------------
              alert(Math.pow(2,4));// pow 计算参数1 的参数2 次方.
      math对象

      5.function对象

    function func1(name){
        alert('hello'+name);
        return 8
    }
    
        ret=func1("yuan");
        alert(ret);
    
    
    var func2=new Function("name","alert("hello"+name);")
    func2("egon")

    BOM对象:

      window 对象

    alert()            显示带有一段消息和一个确认按钮的警告框。
    confirm()          显示带有一段消息以及确认按钮和取消按钮的对话框。
    prompt()           显示可提示用户输入的对话框。
    open()             打开一个新的浏览器窗口或查找一个已命名的窗口。
    close()            关闭浏览器窗口。
    setInterval()      按照指定的周期(以毫秒计)来调用函数或计算表达式。
    clearInterval()    取消由 setInterval() 设置的 timeout。
    setTimeout()       在指定的毫秒数后调用函数或计算表达式。
    clearTimeout()     取消由 setTimeout() 方法设置的 timeout。
    scrollTo()         把内容滚动到指定的坐标。

    alert & confir & prompt  函数:

    //        alert('ok')//alert 直接弹出内容;alert('ok')
    //        var result = confirm('您确定要删除么?'); //得到一个true 或false 的返回值
    //        console.log(result)
            var result = prompt('请输入一个数字:');// 得到与用户交互的数据

    setInterval,clearInterval  setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>timer</title>
        <script>
    
         var ID;
         function foo() {
             var timer=new Date().toString();
             var ele = document.getElementById('d1');
             ele.value = timer}
    
         function bar() {
             if (ID==undefined){
                 foo();
                 ID=setInterval(foo,1000)}
         }
         function bar1() {
             clearInterval(ID);
             ID=undefined
         }
    
        </script>
    </head>
    <body>
    
      <input type="text" id="d1" >
      <button onclick="bar()">start</button>
      <button onclick="bar1()">stop</button>
    
    </body>
    </html>

    Dom 对象

     html dom 对象:

    •    HTML  Document Object Model(文档对象模型)
    •     HTML DOM 定义了访问和操作HTML文档的标准方法
    •     HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树)

    节点关系:

    •     在节点树中,顶端节点被称为根(root)
    •     每个节点都有父节点、除了根(它没有父节点)
    •     一个节点可拥有任意数量的子
    •     同胞是拥有相同父节点的节点

    节点查找:(类似css里的选择器):

    document.getElementById(“idname”) // 根据id
    document.getElementsByTagName(“tagname”) //根据标签
    document.getElementsByName(“name”) //根据name属性
    document.getElementsByClassName(“name”)// 根据类ming

    导航节点属性

    parentElement           // 父节点标签元素
    
    children                // 所有子标签
    
    firstElementChild       // 第一个子标签元素
    
    lastElementChild        // 最后一个子标签元素
    
    nextElementtSibling     // 下一个兄弟标签元素
    
    previousElementSibling  // 上一个兄弟标签元素
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
    </head>
    <body>
        <!--<div class="c1">egon</div>-->
        <div class="outer">
            <div class="inner">
                <p id="p1"></p>
            </div>
            <p>hello world</p>
    
        </div>
        
        <script>
            var ele=document.getElementsByClassName('c1')[0];
            ele.style.color='red';
    
            var ele_p1 = document.getElementById('p1');
            var ele_par = ele_p1.parentElement;
            alert(ele_par.nextElementSibling)
        </script>
    
    </body>
    </html>
    示例

      

  • 相关阅读:
    Watir and Selenium
    WebDriver 原理 (zhuan)
    Junit4 如何实现并发测试用例,及 Selenium Grid2 与 Junit4 结合进行并发测试。
    Excel: 如何知道 A列中的条目是否在 B 列中
    WebDriver如何工作 (zhuan)
    复习 多线程
    Way To Get Xpath From IE (forward)
    Eclipse 常用快捷键
    如何引入(调用)一个 js文件
    Wireshark 常见 filter (转)
  • 原文地址:https://www.cnblogs.com/mona524/p/7299571.html
Copyright © 2011-2022 走看看