W3C:JavaScript 对象

JavaScript 参考手册
这个链接要参考,多使用

  • JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
    此外,JavaScript 允许自定义对象。
  • 对象只是带有属性和方法的特殊数据类型。
  • 属性是与对象相关的值。
    访问对象属性的语法是:
objectName.propertyName
  • 方法是能够在对象上执行的动作。
    您可以通过以下语法来调用方法:
objectName.methodName()
  • 这个例子创建了对象的一个新实例,并向其添加了四个属性:
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

替代语法(使用对象 literals):

person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
  • 本例使用函数来构造对象:
function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;
}

一旦您有了对象构造器,就可以创建新的对象实例,就像这样:

var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");
  • 方法只不过是附加在对象上的函数。
    在构造器函数内部定义对象的方法:
function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;

    this.changeName=changeName;
    
    function changeName(name)
    {
        this.lastname=name;
    }
}
  • JavaScript 是面向对象的语言,但 JavaScript 不使用类。
    在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。
    JavaScript 基于 prototype,而不是基于类的。
  • JavaScript for...in 语句循环遍历对象的属性。
    for...in 循环中的代码块将针对每个属性执行一次。
    实例: 循环遍历对象的属性:
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person)
{
    txt=txt + person[x];
}

txt的值为BillGates56

Number 对象

  • JavaScript 只有一种数字类型。可以使用也可以不使用小数点来书写数字。
  • JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。
    JavaScript 中的所有数字都存储为根为 10 的 64 位(8 字节),浮点数。
  • 整数(不使用小数点或指数计数法)最多为 15 位。
    小数的最大位数是 17,但是浮点运算并不总是 100% 准确:
  • 如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数
    绝不要在数字前面写零,除非您需要进行八进制转换。
    实例
var y=0377;      // 八进制
var z=0xFF;      // 十六进制
  • 数字属性
    MAX VALUE
    MIN VALUE
    NEGATIVE INFINITIVE
    POSITIVE INFINITIVE
    NaN
    prototype
    constructor
  • 数字方法
    toExponential()
    toFixed()
    toPrecision()
    toString()
    valueOf()

字符串(String)对象

  • 计算字符串的长度
var txt="Hello World!"
document.write(txt.length)
  • 为字符串添加样式
var txt="Hello World!"

document.write("<p>Big: " + txt.big() + "</p>")
document.write("<p>Small: " + txt.small() + "</p>")

document.write("<p>Bold: " + txt.bold() + "</p>")
document.write("<p>Italic: " + txt.italics() + "</p>")

document.write("<p>Blink: " + txt.blink() + " (does not work in IE)</p>")
document.write("<p>Fixed: " + txt.fixed() + "</p>")
document.write("<p>Strike: " + txt.strike() + "</p>")

document.write("<p>Fontcolor: " + txt.fontcolor("Red") + "</p>")
document.write("<p>Fontsize: " + txt.fontsize(16) + "</p>")

document.write("<p>Lowercase: " + txt.toLowerCase() + "</p>")
document.write("<p>Uppercase: " + txt.toUpperCase() + "</p>")

document.write("<p>Subscript: " + txt.sub() + "</p>")
document.write("<p>Superscript: " + txt.sup() + "</p>")

document.write("<p>Link: " + txt.link("http://www.w3school.com.cn") + "</p>")
  • 使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置。
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))
  • 使用 match() 来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。
var str="Hello world!"
document.write(str.match("world") + "<br />")
document.write(str.match("World") + "<br />")
document.write(str.match("worlld") + "<br />")
document.write(str.match("world!"))
  • 使用 replace() 方法在字符串中用某些字符替换另一些字符。
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/,"W3School"))

Date(日期)对象

  • 可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象:
    Date 对象自动使用当前的日期和时间作为其初始值。
var myDate=new Date() 
  • 在下面的例子中,我们为日期对象设置了一个特定的日期 (2008 年 8 月 9 日):
var myDate=new Date()
myDate.setFullYear(2008,7,9)

注意:表示月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7。

  • 在下面的例子中,我们将日期对象设置为 5 天后的日期:
var myDate=new Date()
myDate.setDate(myDate.getDate()+5)

注意:如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换。

  • 日期对象也可用于比较两个日期。
    下面的代码将当前日期与 2008 年 8 月 9 日做了比较:
var myDate=new Date();
myDate.setFullYear(2008,8,9);

var today = new Date();

if (myDate>today)
{
    alert("Today is before 9th August 2008");
}
else
{
    alert("Today is after 9th August 2008");
}
  • getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。
var d=new Date();
document.write("从 1970/01/01 至今已过去 " + d.getTime() + " 毫秒");
  • 使用toUTCString() 将当日的日期(根据 UTC)转换为字符串。
var d = new Date()
document.write (d.toUTCString())
  • 使用 getDay() 和数组来显示星期,而不仅仅是数字
var d=new Date()
var weekday=new Array(7)
weekday[0]="星期日"
weekday[1]="星期一"
weekday[2]="星期二"
weekday[3]="星期三"
weekday[4]="星期四"
weekday[5]="星期五"
weekday[6]="星期六"

document.write("今天是" + weekday[d.getDay()])

Array(数组)对象

  • 创建数组,为其赋值,然后输出这些值。
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"

for (i=0;i<mycars.length;i++)
{
    document.write(mycars[i] + "<br />") 
}
  • 使用 for...in 声明来循环输出数组中的元素。
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"

for (x in mycars)     // 这里的x是指下标,和OC有点不一样
{
    document.write(mycars[x] + "<br />")
}
  • 使用 concat() 方法来合并两个数组。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

document.write(arr.concat(arr2))
  • 使用 join() 方法将数组的所有元素组成一个字符串。
var arr = new Array(3);
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr.join());
document.write("<br />");
document.write(arr.join("."));
  • 使用 sort() 方法从字面上对数组进行排序。
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

document.write(arr + "<br />")
document.write(arr.sort())
  • 使用 sort() 方法从数值上对数组进行排序。
function sortNumber(a, b)
{
    return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber))

Boolean(逻辑)对象

  • 您可以将 Boolean 对象理解为一个产生逻辑值的对象包装器。
    Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false)。
    如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined或者 NaN,那么对象的值为false。否则,其值为 true(即使当自变量为字符串 "false" 时)!
var b1=new Boolean( 0)
var b2=new Boolean(1)
var b3=new Boolean("")
var b4=new Boolean(null)
var b5=new Boolean(NaN)
var b6=new Boolean("false")

document.write("0 是逻辑的 "+ b1 +"<br />")                  // false
document.write("1 是逻辑的 "+ b2 +"<br />")                  // true
document.write("空字符串是逻辑的 "+ b3 + "<br />")            // false
document.write("null 是逻辑的 "+ b4+ "<br />")               // false
document.write("NaN 是逻辑的 "+ b5 +"<br />")                // false
document.write("字符串 'false' 是逻辑的 "+ b6 +"<br />")      // true

Math(算数)对象

  • Math(算数)对象的作用是:执行普通的算数任务。
    Math 对象提供多种算数值类型和函数。无需在使用这个对象之前对它进行定义。
  • 下面的例子使用了 Math 对象的 round 方法对一个数进行四舍五入。
document.write(Math.round(4.7));
  • 下面的例子使用了 Math 对象的 random() 方法来返回一个介于 0 和 1 之间的随机数:
document.write(Math.random())
  • 下面的例子使用了 Math 对象的 floor() 方法和 random() 来返回一个介于 0 和 10 之间的随机数:
document.write(Math.floor(Math.random()*11)) 
  • JavaScript 提供 8 种可被 Math 对象访问的算数值:
Math.E            // 常数e
Math.PI           // 圆周率
Math.SQRT2        // 2 的平方根
Math.SQRT1_2      // 1/2 的平方根
Math.LN2          // 2 的自然对数
Math.LN10         // 10 的自然对数
Math.LOG2E        // 以 2 为底的 e 的对数
Math.LOG10E       // 以 10 为底的 e 的对数

RegExp 对象

  • RegExp 对象用于存储检索模式。
    通过 new 关键词来定义 RegExp 对象。以下代码定义了名为patt1 的 RegExp 对象,其模式是 "e"
    当您使用该 RegExp 对象在一个字符串中检索时,将寻找的是字符 "e"
var patt1=new RegExp("e");

*test() 方法检索字符串中的指定值。返回值是 truefalse

var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));  // true
  • exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));  // e

您可以向 RegExp 对象添加第二个参数,以设定检索。例如,如果需要找到所有某个字符的所有存在,则可以使用 "g" 参数 ("global")。
在使用 "g" 参数时,exec() 的工作原理如下:
(1) 找到第一个"e",并存储其位置
(2) 如果再次运行 exec(),则从存储的位置开始检索,并找到下一个 "e",并存储其位置

var patt1=new RegExp("e","g");
do
{
    result=patt1.exec("The best things in life are free");
    document.write(result);
}
while (result!=null) 

由于这个字符串中 6 个 "e" 字母,代码的输出将是:eeeeeenull

  • compile() 方法用于改变 RegExp。
    compile() 既可以改变检索模式,也可以添加或删除第二个参数。
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));

patt1.compile("d");
document.write(patt1.test("The best things in life are free"));

由于字符串中存在"e",而没有"d",以上代码的输出是:truefalse

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。 HTML DOM (文档对象模型...
    夜幕小草阅读 413评论 0 10
  • JavaScript 提供多个 内建 对象,比如 String、Date、Array 等等。对象只是带有 属性 和...
    逍遥叹6阅读 295评论 0 0
  • 1.JavaScript 中的所有事物都是对象:字符串、数值、数组、函数... 此外,JavaScript 允许自...
    ancientear阅读 278评论 0 2
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,246评论 0 5
  • 1.HTML DOM (Document Object Model) document.getElementByI...
    廖马儿阅读 1,403评论 0 17