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>
示例

 

 

 

 

 

 

 

  

 

posted @ 2017-08-07 15:58  皖心  阅读(171)  评论(0编辑  收藏  举报