ECMAScript

在Javascript中除了null和undefind以外其他的数据类型都被定义成了对象,也可以用创建对象的方法定义变量,String、Math、Array、Date、RegExp都是JavaScript中重要的内置对象,在JavaScript程序大多数功能都是基于对象实现的。

 

一、String  字符串    

  1. 创建方式
    1. 变量=‘’ssss‘’
    2. 变量=new  String("ssss")
    • 例子:   var L='sssss'
  2. 属性以及方法
    <属性>
    L.length  //  获取字符串的长度

    <方法>
    L.toLowerCase() // 转为小写
    L.toUpperCase() // 转为大写
    L.trim() // 去除字符串两边空格

    <字符串查询方法>
    L.charAt(index) // 获取指定位置字符,index为指定的获取的字符索引
    L.indexOf(index) // 查询字符串位置,默认开始第一个
    L.lastIndexOf(index) // 查询字符串位置,默认开始第一个
    L.match(regexp)             //  match返回匹配字符串的数组,如果没有匹配则返回null,例如[null,index:15,input:L,groups:undefined]
    L.search(regexp) // search返回匹配字符串的首字符位置索引

    <子字符串处理方法>
    L.substr(start, length) // start表示开始位置,length表示截取长度
    L.substring(start, end) // end是结束位置
    L.slice(start, end) // 切片操作字符串
    L.replace(findstr,tostr) // 字符串替换,只能替换一个//在Python中全部替换
    L.split(','); // 按,分割字符串
    L.concat(addstr) // 拼接字符串

二、Array    数组   

  • 创建方式
    1. var  arr = [1,2,3];
    2. var  arr = new  Array(100,'a',true);
    3. var  arr = new Array(7)              //长度
      • arr[0] = '1'
      • arr[1] = '2'
      • .....
      • arr[6] = '6'
  • 属性以及方法
    var arr = [11,55,'hello',true,656];
    <方法>
    var arr1 = arr.join('-') // 将数组元素拼接成字符串,内签到数组内 11-55-hello-true-656
    var arr2 = arr.concat(4,5) // [11, 55, "hello", true, 656, 4, 5]
    var v = arr.toString() // 11,55,'hello',true,656
    <--------------排序--------------->
    arr.reserve() // 倒置数组元素
    arr.sort() // 从小到大排序(首字母)

    <按真实值从小到大排序>
       function Intsort(a,b) {
    // return a-b;
    // }
    // arr.sort(intsort);
    // console.log(arr.toString());
    arr.slice(start,end)          //  和python的切片一样
    arr.splice(1,2) // 按索引从1 开始删除2个
    <---------------pop/push----------->
       push:是将值添加到数组的结尾
       pop:是讲数组的最后一个元素删除
           栈 后进先出
    <------------shift/unshift--------->
          unshift: 将值插入到数组的开始
    shift: 将数组的第一个元素删除
     java中的数组特性:规定是什么类型的数组,就只能装什么类型.只有一种类型.
    js中的数组特性
    js中的数组特性1:js中的数组可以装任意类型,没有任何限制.
    js中的数组特性2: js中的数组,长度是随着下标变化的.用到多长就有多长.
    数组总结

三、data    日期   

  1. 创建方式
    1. 创建date对象
      //        方式一:
              var now = new Date();
              console.log(now.toLocaleString()); //2017/9/25 下午6:37:16
              console.log(now.toLocaleDateString()); //2017/9/25
      //        方式二
              var now2 = new Date('2004/2/3 11:12');
              console.log(now2.toLocaleString());  //2004/2/3 上午11:12:00
              var now3 = new Date('08/02/20 11:12'); //2020/8/2 上午11:12:00
              console.log(now3.toLocaleString());
      
              //方法3:参数为毫秒数
              var nowd3=new Date(5000);
              alert(nowd3.toLocaleString( ));
              alert(nowd3.toUTCString()); //Thu, 01 Jan 1970 00:00:05 GMT
  2. Date对象的方法—获取日期和时间
    getDate()                 获取日
    getDay ()                 获取星期
    getMonth ()               获取月(0-11)
    getFullYear ()            获取完整年份
    getYear ()                获取年
    getHours ()               获取小时
    getMinutes ()             获取分钟
    getSeconds ()             获取秒
    getMilliseconds ()        获取毫秒
    getTime ()                返回累计毫秒数(从1970/1/1午夜)
  3. 设置日期和时间
    //设置日期和时间
    //setDate(day_of_month)       设置日
    //setMonth (month)                 设置月
    //setFullYear (year)               设置年
    //setHours (hour)         设置小时
    //setMinutes (minute)     设置分钟
    //setSeconds (second)     设置秒
    //setMillliseconds (ms)       设置毫秒(0-999)
    //setTime (allms)     设置累计毫秒(从1970/1/1午夜)
        
    var x=new Date();
    x.setFullYear (1997);    //设置年1997
    x.setMonth(7);        //设置月7
    x.setDate(1);        //设置日1
    x.setHours(5);        //设置小时5
    x.setMinutes(12);    //设置分钟12
    x.setSeconds(54);    //设置秒54
    x.setMilliseconds(230);        //设置毫秒230
    document.write(x.toLocaleString( )+"<br>");
    //返回1997年8月1日5点12分54秒
    
    x.setTime(870409430000); //设置累计毫秒数
    document.write(x.toLocaleString( )+"<br>");
    //返回1997年8月1日12点23分50秒
    设置日期和时间
  4. 日期和时间的转换
    getTimezoneOffset():8个时区×15度×4分/度=480;
    返回本地时间与GMT的时间差,以分钟为单位
    toUTCString()
    返回国际标准时间字符串
    toLocalString()
    返回本地格式时间字符串
    Date.parse(x)
    返回累计毫秒数(从1970/1/1午夜到本地时间)
    Date.UTC(x)
    返回累计毫秒数(从1970/1/1午夜到国际时间)
    日期和时间的转换:

四、  data    日期   

//该对象中的属性方法 和数学有关.
   

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)    返回角的正切。
View Code

五、  Functon        

  1. 函数定义
    • 方式①
      var 函数名 = new Function("参数1","参数n","function_body");
    • 方式②
      var  func2 = new Function('name',"alert(\"hello\"+name);");
          func2('haiyan');
    • 注意:js的函数加载执行与python不同,它是整体加载完才会执行,所以执行函数放在函数声明上面或下面都可以。
  2. Function 对象的属性
    • fun2.length   //有几个参数
  3. Function 的调用
    • 当传入参数多于需要的参数时,不会报错,只按需要的数量计算
    • 当传入参数小于需要的参数时,会显示NaN
      • NaN:属于Number类型的一个特殊值,当遇到将字符串转成数字无效时,就会得到一个NaN数据
  4. 函数的内置对象arguments
    //    函数的内置对象arguments,相当于python中的动态参数
        function add(a,b){
            console.log(a+b);//3
            console.log(arguments.length);//2
            console.log(arguments);//[1,2]
        }
        add(1,2)
    //     ------------------arguments的用处1 ------------------
        function ncadd() {
            var sum = 0;
            for (var i =0;i<arguments.length;i++){
    //            console.log(i);//打印的是索引
    //            console.log(arguments);//Arguments { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 等 2 项… }
                console.log(arguments[i]);//1,2,3,4,5
                sum +=arguments[i]
            }
            return sum
        }
        ret = ncadd(1,2,3,4,5,6);
        console.log(ret);
    
    
    //     ------------------arguments的用处2 ------------------
    
        function f(a,b,c){
            if (arguments.length!=3){
                throw new Error("function f called with "+arguments.length+" arguments,but it just need 3 arguments")
            }
            else {
                alert("success!")
            }
        }
    
        f(1,2,3,4,5)
    View Code

     

  5. 匿名函数
    /    =======================
        // 匿名函数
        var func = function(arg){
            return "tony";
        };
    
    // 匿名函数的应用
        (function(){
            alert("tony");
        } )()
    
        (function(arg){
            console.log(arg);
        })('123')
    View Code

    匿名函数与普通函数的区别:

    • 普通函数  会先加载所有Function,在执行某一个函数
    • 匿名函数  只是类似将一个函数运算的结果赋给变量

六、  BOM       

window对象

所有浏览器都支持 window 对象。
概念上讲.一个html文档对应一个window对象.
功能上讲: 控制浏览器窗口的.
使用上讲: window对象不需要创建对象,直接使用即可.

1.对象方法

alert()            显示带有一段消息和一个确认按钮的警告框。
confirm()          显示带有一段消息以及确认按钮和取消按钮的对话框。
prompt()           显示可提示用户输入的对话框。

open()             打开一个新的浏览器窗口或查找一个已命名的窗口。
close()            关闭浏览器窗口。

setInterval()      按照指定的周期(以毫秒计)来调用函数或计算表达式。
clearInterval()    取消由 setInterval() 设置的 timeout。
setTimeout()       在指定的毫秒数后调用函数或计算表达式。
clearTimeout()     取消由 setTimeout() 方法设置的 timeout。
scrollTo()         把内容滚动到指定的坐标。
//    定时器实例
// var date = new Date();  //Date 2017-09-25T12:20:25.536Z
// console.log(date);
// var date1 = date.toLocaleString();
//  console.log(date1); //2017/9/25 下午8:20:59

    function foo() {
        var date = new Date();
        var date = date.toLocaleString();//吧日期字符串转换成字符串形式
        var ele = document.getElementById('timer')  //从整个html中找到id=timer的标签,也就是哪个input框

        ele.value = date;
        console.log(ele)  //ele是一个标签对象
//    value值是什么input框就显示什么
    }
    var ID;
    function begin() {
        if (ID==undefined){
            foo();
            ID = setInterval(foo,1000)
        }
    }

    function end() {
        clearInterval(ID);
        console.log(ID);
        ID = undefined
    }
定时器实例

 

posted @ 2018-04-22 21:54  慕沁  阅读(236)  评论(0)    收藏  举报