美文网首页
JavaScript基本语法笔记

JavaScript基本语法笔记

作者: 无所不行的刷子 | 来源:发表于2017-09-16 16:12 被阅读0次

    变量

    使用关键字var来定义变量,js的变量是弱类型,var不写也可以

    var a = 0; a = "abcv"; a = true;a=3.15;
    

    运算符

    算术运算符

    var a = 3170; b = a/1000*1000;
    b = 3170 js是弱类型a/1000 不是等于3
    "12"-1 = 11 js会将字符串转换再做运算不是字符串相加减
    2%5 = 2;

    • js中fase是0或者null,非0非null就是true
    • ++问题

    var n = 3,m; m = n++; n = 4;m =3;
    var n = 3,m; m =++n; n = 4;m =4;

    赋值运算符

    = += -= /= %

    比较运算符

    < > == <= <= 运算的结果不是false就是true

    逻辑运算符

    ! && || 用来连接两个Boolean的表达式, &是位运算符

    alert(a>3 && b<8); true | false
    alert(a > 3 & b < 8);1 | 0
    alert(!t); false | true;   非0或非null取反
    

    位运算符

    & | ^ >> << >>> <<<

    var c = 6;
    alert(c&3);2 (相同为真)
    110
    011
    010
    alert(5^3^3);5(不同为真)
    alert(6>>1);6除于2的1次方=3
    alert(6<<2);6x2的2次方 = 24
    

    三元运算符

    ? : 可以是ifelse的简写形式

    其他

    1.undefined 未定义,有变量没赋值,其实就是一个常量

    xx==undefined
    

    2.获取值的类型,可以通过typeof获取

    alert(typeof('a')=='string');//number boolean
    

    语句

    顺序结构,从上往下执行

    判断结构 if

    var t = 1;
    if(t == 2); 判断,建议将常量放左边
    if (t = 2); 赋值true
    

    选择结构 switch

    var a = "bd";
    switch(a){
      case "cc":
            alert("cc");
    break;
      default:
          alert("default")
    break;
    }
    

    循环结构 while for

    while(t < 8) {};
    for(var x = 0; x < 3; x++){document.write("a");}
    

    其他 break continue

    w:for(var x = 0; x < 3; x++){
          for (var y = 0; y < 4; y++) {
              doucument.write("a");
              continue:w;
          }
    }
    

    数组 对象类型(object)

    1.定义数组两种方式

    var arr =[]; var arr = [3,2,4];
    var arr = new Array(); new Array(5);new Array(1,2,3,4,5);
    

    2.arr.length 数组长度
    3.遍历数组

    for (var x = 0; x < arr.length; x++) {
        document.write("arr["+x+"]"+ arr[i]);
    }
    

    4.特点

    • 长度可变
    • 元素的类型是任意的。建议使用时存储同一类型的元素

    函数

    1.函数的格式

    function 函数名(参数列表){
    函数体;
    return 返回值;如果没有返回值页可以省略return
    }
    函数名();调用

    function add(x,y){
      return x + y;
    }
    var a = add(5,6);
    

    2.只要使用了函数的名称,就是对这个函数的调用
    3.函数中有一个数组有一个数组对传入的参数进行存储,这个数组就是arguments
    4.函数调用没有加括号时,会返回方法定义的字符串

    function a(){returen 100;}
    var a = a// 会返回function a(){returen 100;}
    

    动态函数

    使用的是js中内置的一个对象Function

    new Function("x,y","var sum; sum=x+y;return sum;");
    add(4,8);
    

    匿名函数

    没有名字的函数,通常是函数的简写形式

    var add = function(a,b){
        return a + b;
    }
    add(7,8);
    

    变量

    变量如果在script内声明变量在整个变量都有用----全局变量
    变量在Function里面定义的是局部变量

    <scrpit>
    for (var x =0;x <3;x++) {}
    doucment.write("x="+x);//x = 3 在本页面其他script里x也可以用
    </script>
    

    对象

    Object

    提供所有对象的通用方法。
    object.toStrong()所有对象变成字符串对象
    object.valueOf()返回指定对象的初始方法

    String

    1.定义

    var str = new String("abc");
    var str = "string";
    

    2.常用方法

    str.length长度(不是方法是属性没有括号)
    str.bold()加粗使用Bhtml标签
    str.concat()连接字符串
    str.foncolor("red")字体颜色
    str.link("http://b.com"); 链接
    str.replace()替换
    str.substr(1,3) 截取字符串 从哪开始长度
    str.substring(1,3)//截取从哪开始到哪结束
    

    3.自定义方法

     <script>
                function trim(str) {
                    var start,end;
                    start = 0;
                    end = str.length - 1;
                    while(start <= end && str.charAt(start)==' ') {
                        start++;
                    }
                    while(start <= end && str.charAt(end)==' ') {
                        end--;
                    }
                    return str.substring(start,end+1);
                }
                var s = "   a b c     ";
                alert(trim(s));
            </script>
    

    4.prototype 属性

    返回对象原型的引用,用这个属性提供对象的类的一组基本功能,相当于分类
    给String的原型中添加一个功能

    String.prototype.len = 180;
    alert("sdf".len);//180
    
    String.prototype.trim = function(){};//给字符串添加一个方法
    str.trim();
    

    Array

    1.定义

    var  arr = ["a","b","c'];
    var arr = new Array(3);
    var arr = new Array("","","")
    

    2.方法

    var arr = ["a","b"];
    var arr2 = ["bc","dd"];
    //连接数组
    arr.concat("ds",arr2);//输出 ["a","b","ds","bc","dd"];
    //join返回字符串,元素由指定分隔符分割
    arr.join();//输出“a,b” arr.join("-") 输出 “a-b”;
    //pop移除最后一个元素并返回该元素
    arr.pop();//输出 “b”
    //push 添加新元素(元素可以是数组),并返回数组的长度
    arr.push("dd");//输出 3
    //shift 移除第一个元素,输出被删除元素
    arr.shift();//输出“a”
    //slice 返回数组的一段
    arr.slice(start,end);不包含end元素
    //sort 排序
    arr.sort();
    //splice()删除元素,并可以元素进行替换,返回移除的元素
    arr.splice(0,1,“dd”);输出"a", 数组变为 ["dd",b];
    //unshift();将指定元素插入数组的第一个元素,并返回数组
    arr.unshit("xx");//输出 ["xx","a","b"]
    

    3.Array.prototype属性支持

    Array.prototype.getMax = function(){};
    

    Date对象

    1.定义

    var date = new Date();
    var date = new Date(dateVal);
    var date = new Date(y,m,d,[h,m,s.ms]);
    

    2.方法

    //parse 解析一个包含日期的字符串,返回1970.1.1与该日期的间隔毫秒值
    Date.parse("7/16/2017")//1500134400000
    

    with语法

    为了简化对象内容的书写,可以使用js中的特有语句来完成

    with(对象){
      在该区域中可以直接使用指定对象的内容,不需要写对象点
    }
     var date = new Date();
                with(date){
                    var year = getFullYear();
                    var day = getDate();
                    document.write(year+day);
                }
    

    Math对象

    Number对象

    forin语法

    var arr = [10,22,11,26];
    for(i in arr){
        doucument.write(arr[i]);
    }
    

    自定义对象

    如果想要自定义对象,应该先对对象进行描述,js是基于对象,不是面对对象。不具备描述事物的能力,我们还想按照面向对象思想编写js,就要先买搜索,在js中,可以用函数来模拟面向对象的描述

    //第一种方式
    //用js描述人,相当于构造器
    function Persn(){
    }
    var p = new Person();
    //动态给p对象添加属性,直接使用p.属性名即可
    p.name = "name";
    p.age = 29;
    //如果定义的p对象的属性赋值为一个函数,即是给p对象添加一个方法
    p.show = function(){};//p.show();
    
    //第二种封装方式(描述事物)
    function Person(name,age) {
    //在给person对象添加两个属性
        this.name = name;
    //对象添加属性访问其
      this.setName = function (name){
             this.name = name;
      }
      this.getName = function(){
           return this.name;
      }
    }
    var p = new Person("aaa",33);
    p.setName("ss");
    p.getName();
    
    //第三种封装方式
    var = pp {
      //定义一些成员
      "name":"sss",
      "age":33,
      "getName":function(){ return this.name; }
    }
    //对象调用成员的两种方式
    var age = pp.age;
    var age = pp["age"];
    

    遍历对象

    for (x in pp) {
     document.write(x+":"+pp[x]);
    }
    输出:name:ss   age:33   getName:function(){ return this.name; }
    

    封装键值对方式

    //myName和myAge不用先定义,用字符串也是可以的
    var map = {
                    myName:"sdf",
                    myAge:12
                }
    alert(map.myName+":"+map["myAge"]);//输出sdf:12
    

    相关文章

      网友评论

          本文标题:JavaScript基本语法笔记

          本文链接:https://www.haomeiwen.com/subject/mittsxtx.html