博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端基础--javascript对象
阅读量:6363 次
发布时间:2019-06-23

本文共 9199 字,大约阅读时间需要 30 分钟。

1.什么是js中的对象

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

2.string对象

 2.1.字符串对象创建

字符串创建(两种方式)       ① 变量 = “字符串”           var str1="hello world";       ② 字串对象名称 = new String (字符串)           var str1= new String("hello word");

  2.2.字符串对象的属性跟函数

x.length         ----获取字符串的长度 x.toLowerCase()        ----转为小写 x.toUpperCase()        ----转为大写 x.trim()               ----去除字符串两边空格       ----字符串查询方法x.charAt(index)         ----str1.charAt(index);----获取指定位置字符,其中index为要获取的字符索引x.indexOf(findstr,index)----查询字符串位置x.lastIndexOf(findstr)  x.match(regexp)         ----match返回匹配字符串的数组,如果没有匹配则返回nullx.search(regexp)        ----search返回匹配字符串的首字符位置索引                        示例:                        var str1="welcome to the world of JS!";                        var str2=str1.match("world");                        var str3=str1.search("world");                        alert(str2[0]);  // 结果为"world"                        alert(str3);     // 结果为15                        ----子字符串处理方法x.substr(start, length) ----start表示开始位置,length表示截取长度x.substring(start, end) ----end是结束位置x.slice(start, end)     ----切片操作字符串                        示例:                            var str1="abcdefgh";                            var str2=str1.slice(2,4);                            var str3=str1.slice(4);                            var str4=str1.slice(2,-1);                            var str5=str1.slice(-3,-1);                            alert(str2); //结果为"cd"                                                        alert(str3); //结果为"efgh"                                                        alert(str4); //结果为"cdefg"                                                        alert(str5); //结果为"fg"x.replace(findstr,tostr) ----    字符串替换x.split();                 ----分割字符串                                 var str1="一,二,三,四,五,六,日";                                 var strArray=str1.split(",");                                alert(strArray[1]);//结果为"二"                                x.concat(addstr)         ----    拼接字符串

3.array对象

  3.1.创建数组的三种方式

创建方式1:var arrname = [元素0,元素1,….];          // var arr=[1,2,3];创建方式2:var arrname = new Array(元素0,元素1,….); // var test=new Array(100,"a",true);创建方式3:var arrname = new Array(长度);             //  初始化数组对象:                var cnweek=new Array(7);                    cnweek[0]="星期日";                    cnweek[1]="星期一";                    ...                    cnweek[6]="星期六";

3.2数组对象的属性和方法

   join方法:

x.join(bystr)       ----将数组元素拼接成字符串                var arr1=[1, 2, 3, 4, 5, 6, 7];                var str1=arr1.join("-");                alert(str1);  //结果为"1-2-3-4-5-6-7"

   concat方法:

x.concat(value,...)    ----                    var a = [1,2,3];                  var b=a.concat(4,5) ;                  alert(a.toString());  //返回结果为1,2,3                              alert(b.toString());  //返回结果为1,2,3,4,5

   数组排序--  reverse  sort:

//x.reverse()//x.sort()var arr1=[32, 12, 111, 444];//var arr1=["a","d","f","c"];arr1.reverse(); //颠倒数组元素alert(arr1.toString());//结果为444,111,12,32arr1.sort();    //排序数组元素alert(arr1.toString());//结果为111,12,32,444//------------------------------arr=[1,5,2,100];//arr.sort();//alert(arr);//如果就想按着数字比较呢?function intSort(a,b){    if (a>b){        return 1;//-1    }    else if(a

   数组切片操作:

//x.slice(start, end)////使用注解////x代表数组对象//start表示开始位置索引//end是结束位置下一数组元素索引编号//第一个数组元素索引为0//start、end可为负数,-1代表最后一个数组元素//end省略则相当于从start位置截取以后所有数组元素var arr1=['a','b','c','d','e','f','g','h'];var arr2=arr1.slice(2,4);var arr3=arr1.slice(4);var arr4=arr1.slice(2,-1);alert(arr2.toString());//结果为"c,d" alert(arr3.toString());//结果为"e,f,g,h"alert(arr4.toString());//结果为"c,d,e,f,g"

   删除子数组:

//x. splice(start, deleteCount, value, ...)//使用注解//x代表数组对象//splice的主要用途是对数组指定位置进行删除和插入//start表示开始位置索引//deleteCount删除数组元素的个数//value表示在删除位置插入的数组元素//value参数可以省略               var a = [1,2,3,4,5,6,7,8];a.splice(1,2);alert(a.toString());//a变为 [1,4,5,6,7,8]a.splice(1,1);alert(a.toString());//a变为[1,5,6,7,8]a.splice(1,0,2,3);alert(a.toString());//a变为[1,2,3,5,6,7,8]

   数组的push和pop

//push pop这两个方法模拟的是一个栈操作//x.push(value, ...)  压栈//x.pop()             弹栈      //使用注解////x代表数组对象//value可以为字符串、数字、数组等任何值//push是将value值添加到数组x的结尾//pop是将数组x的最后一个元素删除var arr1=[1,2,3];arr1.push(4,5);alert(arr1);//结果为"1,2,3,4,5"arr1.push([6,7]);alert(arr1)//结果为"1,2,3,4,5,6,7"arr1.pop();alert(arr1);//结果为"1,2,3,4,5"

   数组的shift和unshift

//x.unshift(value,...)//x.shift()//使用注解//x代表数组对象//value可以为字符串、数字、数组等任何值//unshift是将value值插入到数组x的开始//shift是将数组x的第一个元素删除var arr1=[1,2,3];arr1.unshift(4,5);alert(arr1);  //结果为"4,5,1,2,3"arr1. unshift([6,7]);alert(arr1);  //结果为"6,7,4,5,1,2,3"arr1.shift();alert(arr1);  //结果为"4,5,1,2,3"

   

js数组的特性

//  js中数组的特性         //java中数组的特性,  规定是什么类型的数组,就只能装什么类型.只有一种类型.         //js中的数组特性1:   js中的数组可以装任意类型,没有任何限制.         //js中的数组特性2:   js中的数组,长度是随着下标变化的.用到多长就有多长.         var arr5 = ['abc',123,1.14,true,null,undefined,new String('1213'),new Function('a','b','alert(a+b)')];        /*  alert(arr5.length);//8         arr5[10] = "hahaha";         alert(arr5.length); //11         alert(arr5[9]);// undefined */

 

3.date对象

  3.1创建date对象

//方法1:不指定参数var nowd1=new Date();alert(nowd1.toLocaleString( ));//方法2:参数为日期字符串var nowd2=new Date("2004/3/20 11:12");alert(nowd2.toLocaleString( ));var nowd3=new Date("04/03/20 11:12");alert(nowd3.toLocaleString( ));//方法3:参数为毫秒数var nowd3=new Date(5000);alert(nowd3.toLocaleString( ));alert(nowd3.toUTCString());//方法4:参数为年月日小时分钟秒毫秒var nowd4=new Date(2004,2,20,11,12,0,300);alert(nowd4.toLocaleString( ));//毫秒并不直接显示

 

  获取日期和时间

获取日期和时间getDate()                 获取日getDay ()                 获取星期getMonth ()               获取月(0-11)getFullYear ()            获取完整年份getYear ()                获取年getHours ()               获取小时getMinutes ()             获取分钟getSeconds ()             获取秒getMilliseconds ()        获取毫秒getTime ()                返回累计毫秒数(从1970/1/1午夜)

 

  设置时间和日期

//设置日期和时间//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);    //设置年1997x.setMonth(7);        //设置月7x.setDate(1);        //设置日1x.setHours(5);        //设置小时5x.setMinutes(12);    //设置分钟12x.setSeconds(54);    //设置秒54x.setMilliseconds(230);        //设置毫秒230document.write(x.toLocaleString( )+"
");//返回1997年8月1日5点12分54秒x.setTime(870409430000); //设置累计毫秒数document.write(x.toLocaleString( )+"
");//返回1997年8月1日12点23分50秒

 

  日期和时间的转换

日期和时间的转换:getTimezoneOffset():8个时区×15度×4分/度=480;返回本地时间与GMT的时间差,以分钟为单位toUTCString()返回国际标准时间字符串toLocalString()返回本地格式时间字符串Date.parse(x)返回累计毫秒数(从1970/1/1午夜到本地时间)Date.UTC(x)返回累计毫秒数(从1970/1/1午夜到国际时间)

 

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 次方.

 

5.function对象

  5.1函数的定义

function 函数名 (参数){

函数体; return 返回值;}

  功能说明:

  可以使用变量、常量或表达式作为函数调用的参数

  函数由关键字function定义
  函数名的定义规则与标识符一致,大小写是敏感的
  返回值必须使用return
  Function 类可以表示开发者定义的任何函数。

用 Function 类直接创建函数的语法如下:

var 函数名 = new Function("参数1","参数n","function_body");

 

虽然由于字符串的关系,第二种形式写起来有些困难,但有助于理解函数只不过是一种引用类型,它们的行为与用 Function 类明确创建的函数行为是相同的。

注意:js的函数加载执行与python不同,它是整体加载完才会执行,所以执行函数放在函数声明上面或下面都可以

  5.2 function对象的属性

函数属于引用类型,所以他们也有属性和方法,

比如,ECMAScript 定义的属性 length 声明了函数期望的参数个数。

alert(func1.length)

 

  5.3function的调用

function func1(a,b){    alert(a+b);}    func1(1,2);  //3    func1(1,2,3);//3    func1(1);    //NaN    func1();     //NaN    //只要函数名写对即可,参数怎么填都不报错.-------------------面试题----------- function a(a,b){    alert(a+b);}   var a=1;   var b=2;   a(a,b)

 

   5.4函数的内置对象

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 nxAdd(){        var result=0;        for (var num in arguments){            result+=arguments[num]        }        alert(result)    }    nxAdd(1,2,3,4,5)//     ------------------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)

 

   5.5匿名函数

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

 

转载于:https://www.cnblogs.com/yxwang/p/7686140.html

你可能感兴趣的文章
review what i studied `date` - 2017-4-1
查看>>
IronPython教程
查看>>
squid via检测转发循环
查看>>
计算分页
查看>>
iptables 做nat路由器脚本
查看>>
数据结构(C语言版)第三章:栈和队列
查看>>
Keepalive 之 keepalive概念介绍
查看>>
Stopping and/or Restarting an embedded Jetty in...
查看>>
Oracle存储过程中的数据集输入参数
查看>>
vsftp 配置
查看>>
VCSA中配置时间和时区,实测至6.5适用
查看>>
高并发IM系统架构优化实践
查看>>
产品经理教你玩转阿里云负载均衡SLB系列(一):快速入门--什么是负载均衡
查看>>
有关linux--进程组、会话、守护进程详解
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
monkeyrunner运行Python脚本来检查apk渠道和验证是否可以调用微信
查看>>
github获得SSH Key解决Permission denied (publickey)问题
查看>>
用java代码编写Oracle存储过程
查看>>
APACHE转发
查看>>