< 笔记 > JavaScript

来源:互联网 发布:php使用ftp上传文件 编辑:程序博客网 时间:2024/05/21 18:49

07 JavaScript 对象

By Kevin Song

  • 07-01 Object对象
  • 07-02 Number对象
  • 07-03 String对象
  • 07-04 Array对象
  • 07-05 Date对象
  • 07-06 Math对象
  • 07-07 自定义对象

07-01 Object对象

常用方法

  • toString
    • 将该对象的原始值以字符串形式返回
    • 在字符串运算里,会优先调用toString(),如alert(c)
  • valueOf
    • 返回最适合该对象类型的原始值
    • 在数值运算里,会优先调用valueOf(),如a + b
<script type="text/Javascript">    function show() {        alert("show run");    }    alert(show.toString());    var arr = [1,2,3,4];    alert(arr.toString());</script>

07-02 Number对象

  • new Number(“123”);
  • 属性
    • MIN_VALUE 最小值:
    • MAX_VALUE 最大值:
    • NaN:表示不是数字
  • 方法
    • toFixed() 返回一个数字的小数表达
      • a.toFixed(2) //123.00
    • toExponential() 返回一个数字的科学记数法表达
      • a.toExponential() //1.23e+2
    • valueOf() 返回一个数字的对象的基本数字类型
      • typeof a //object类型
      • typeof a.valueOf() //123 number类型

07-03 String对象

创建对象两种方式

var str = new String("abc");
var str = "abc"
  • 常用属性
    • length
    • prototype
  • 常用方法
    • String a = new String(“123”);
    • 根据角标找字符
      • charAt()返回指定位置的字符
        • s.charAt(0) //1
      • charCodeAt()返回指定位置的字符对应的Unicode码
        • s.carCodeAat(0)//49
    • 根据字符找角标
      • indexOf() 返回字符串第一次出现的位置
      • lastIndexOf 返回字符串最后一次出现的位置
    • concat() 连接
    • localeCompare 比较字符串是否相同
      • 0 表示相同
      • 1 表示字母顺序靠后
      • -1 表示字母顺序靠后
    • substr(start,length)子串
    • subString(start,end)子串包含头不包含尾
    • split(regex) 分割为数组
    • replace(search,replacement)用replacement替换第一个search
      • 多个替换
        • var regS = new RegExp(“a”,”b”,”c”…);
        • x.replace(regS,”o”);
    • bold()加粗
    • fontcolor()字体颜色
    • link()加上超链接
<script type="text/Javascript" src="out.js"></script><script type="text/Javascript">    var str = "abcde";    println("len="str.length);//len=3    alert(str.bold());//<b>abc</b>    println(str.bold());//加粗后的abc    alert(str.fontcolor("red"));//<font color="red">abc</font>    println(str.fontcolor("red"));//红色abc    alert(str.link("http://www.baidu.com"))//<a href="http://www.baidu.com">abc</a>    println(str.link("http://www.baidu.com"));//超链接abc</script>    println(str.substr(1,3));//bcd    println(str.substring(1,3));//bc
out.js文件function println(param) {    document.write(param+"<br/>");}function print(param) {    document.write(param);}

自定义功能

去除字符串两端的空格

思路:

  • 定义两个变量,一个记录开始位置,一个记录结束位置
  • 对开始的位置的字符进行判断,如果是空格就递增,直到不是空格为止
  • 对结束的位置的字符进行判断,如果是空格就递减,直到不是空格为止
<script type="text/Javascript">    function trim(arr) {        var start, end;        start = 0;        while (start<=end && str.charAt(start)==" ") {            start++;        }        while (start<=end && str.charAt(end)==" ") {            end--;        }        return str.substring(start,end+1);    }    var str = "   ab c  ";    alert("-"+trim(str)+"-");</script>

prototype属性:给对象添加新功能

String.prototype.len = 100;//给String的原型对象中加了一个名为len值为199的属性
<script type="text/Javascript" src="stringtool.js">    var str = "   ab c  ";    alert("-"+str.trim()+"-");</script>stringtool.js文件String.prototype.trim = function () {    var start, end;    start = 0;    while (start<=end && str.charAt(start)==" ") {        start++;    }    while (start<=end && str.charAt(end)==" ") {        end--;    }    return str.substring(start,end+1);}

07-04 Array对象

定义数组的两种方式

  • 方式一:var arr=[1,2,3,4];
  • 方式二:使用Array对象来定义
    • var arr = new Array();//var arr =[];
    • var arr = new Array(5);//数组长度为5
    • var arr = new Array(5,6,7);//数组元素是5,6,7

Array对象方法

  • concat(element1,element2,…)在数组里添加新的元素
<script type="text/Javascript" src="stringtool.js">    var arr1 = ["aaa","bbb","ccc"];//aaa,bbb,ccc    var arr2 = ["eee","fff",10]//eee,fff,10    var newArr = arr1.concat("ddd",arr2);//aaa,bbb,ccc,ddd,eee,fff,10</script>
  • join(“-“)定义数组字符串连接符
<script type="text/Javascript" src="stringtool.js">    var arr1 = ["aaa","bbb","ccc"];//aaa,bbb,ccc    arr1.join("-");//aaa-bbb-ccc</script>
  • push() 在最后的位置插入数据并返回数组的新长度
  • pop() 在最后的位置获取数据并返回该元素
<script type="text/Javascript" src="stringtool.js">    var arr1 = ["aaa","bbb","ccc"];    println(arr1);//aaa,bbb,ccc    arr1.pop();//ccc    println(arr1);//aaa,bbb</script>
  • unshift 在开始的位置插入数据并返回该数组
  • shift 在开始的位置获取数据并返回该元素
  • sort()正向排序(默认小的数在前)
    • 自定义排序算法
      • function comparetor(v1,v2) {return v2-v1;//v2-v1表示大的在前,小的在后}
      • x.sort(comparator);
  • reverse()反向排序
  • slice(start,end)截取数组,包含start不包含end
  • splice(start,deleteCount,element1,element2,…)从start开始删除deleteCount个元素并且加入新的元素,返回被删的元素
<script type="text/Javascript" src="stringtool.js">    var arr1 = ["aaa","bbb","ccc"];//aaa,bbb,ccc    println(arr1);//aaa,bbb,ccc    arr1.splice(1,1,111,"hhh","kkk");//bbb    println(arr1);//aaa,bbb//aaa,111,hhh,kkk,ccc</script>

堆栈和队列结构实现

FIFO先进先出。队列结构

<script type="text/Javascript" src="stringtool.js">    var arr = [];    //arr.unshift("aaa","bbb","ccc");    arr.unshift(aaa);//aaa    arr.unshift(bbb);//bbb,aaa    arr.unshift(ccc);//ccc,bbb,aaa    arr.pop();//aaa    arr.pop();//bbb    arr.pop();//ccc</script>

FILO先进后出。堆栈结构

<script type="text/Javascript" src="stringtool.js">    var arr = [];    //arr.unshift("aaa","bbb","ccc");    arr.unshift(aaa);//aaa    arr.unshift(bbb);//bbb,aaa    arr.unshift(ccc);//ccc,bbb,aaa    arr.shift();//ccc    arr.shift();//bbb    arr.shift();//aaa</script>

自定义功能

<script type="text/Javascript">    var array = ["aaa","bbb","ccc"];    array.getMax();    array.toString();</script>arraytool.js文件//数组获取最值Array.prototype.getMax = function() {    var temp = 0;    for(var x = 1; x < this.length; x++) {        if(this[x] > this[temp]) {            temp = x;        }    }    return this[temp];}//数组的字符串表现形式Array.prototype.toString = function() {    return "["+this.join()+"]"}

07-05 Date对象

创建对象方法

  • new Date():获取当前时间

常用方法

  • toLocaleString()获取日期和时间
  • toLocaleDateString()获取日期
  • getFullYea()r获取年份
  • getMonth()获取月份,+1之后才是实际月份
  • getDate()获取日
  • getWeek()获取星期
  • getTime()获取毫秒值
<script type="text/Javascript" src="out.js">    var date = new Date();    println(date.toLocaleString());//日期和时间    println(date.toLocaleDateString());//日期    var year = date.getFullYear();    var month = date.getMonth()+1;    var day = date.getDate();    var week = date.getDay();</script>

日期对象-毫秒值转换

日期对象–>毫秒值

var time = date.getTime();

毫秒值–>日期对象

var date3 = new Date(time);

日期对象-字符串转换

日期对象–>字符串

toLocaleString()获取日期和时间toLocaleDateString()获取日期

字符串–>毫秒值–>日期对象

var str_date = "9/28/2017";var time = Date.parse(str_date);var date = new Date(time);

07-06 Math对象

该对象的方法都是静态的

<script type="text/Javascript" src="out.js">    var num1 = Math.ceil(12.34);//13 返回大于等于指定参数的最小整数    var num2 = Math.floor(12.34);//12 返回小鱼等于指定参数的最小整数    var num3 = Math.round(12.34);//13 四舍五入    var num4 = Math.pow(10,2);//10的2次方    var num5 = Math.random();//0-1之间的伪随机数    var num6 = parseInt(Math.random()*10+1);//获取1-10之间的随机数</script>

全局方法

Global对象中的方法都是全局方法

  • parseInt(数据,进制):把指定进
  • 制的字符串转化成十进制
    • parseInt(“12abc”);//12
    • parseInt(“abc12”);//NaN
  • isNaN():判断是否非法

把指定进制的字符串转化成十进制

  • parseInt()

把十进制转换成其他进制

  • number对象的toString方法
var num = new Number(6);num.toString(2);//110 十进制6转换成二进制的110

07-07 自定义对象

JS用函数来描述对象

方法一

  • 函数描述Person
  • 建立Person对象
  • 动态添加属性
function Person() {    alert("person run");}var p = new Person();p.name = "Tony";p.age = 29;p.show = function() {    alert("show:"+this.name+":"+this.age);}p.show();

方法二

  • 函数描述Person,参数列表不为空
  • 建立Person对象
function Person(name, age) {    this.name = name;    this.age = age;    this.setName = function(name) {        this.name = name;    }    this.setAge = function(age) {        this.age = age;    }}var p = new Person("Tony",29);

方式三

  • 大括号封装一个实体
  • 实体内有键值对
    • ”Key”:”Value”
      • key可以是字符串,数字等
      • Value可以是字符串,数字,函数等
  • 调用方式
    • 对象.属性
    • 对象[“属性”]
var person = {    "name":"Steve","age":31,    "getName";function() {        return this.name;    }}alert(pp.age);

复杂的方式三

var myMap= {    names:[{name1:"aaa"},{myname:"bbb"}]}alert(myMap.names[0.name1]);
原创粉丝点击