JavaScript 中的所有事物都是工具:字符串、数值、数组、函数...
此外,JavaScript 许可自定义工具。
所有事物都是工具

JavaScript 供应多个内建工具,比如 String、Date、Array 等等。 工具只是带有属性和方法的分外数据类型。
布尔型可以是一个工具。
数字型可以是一个工具。
字符串也可以是一个工具
日期是一个工具
数学和正则表达式也是工具
数组是一个工具
乃至函数也可以是工具
JavaScript 工具
工具只是一种分外的数据。工具拥有属性和方法。
访问工具的属性
属性是与工具干系的值。
访问工具属性的语法是:
objectName.propertyName
这个例子利用了 String 工具的 length 属性来得到字符串的长度:
var message=\"大众Hello World!\公众;
var x=message.length;
在以上代码实行后,x 的值将是:
12
访问工具的方法
方法是能够在工具上实行的动作。
您可以通过以下语法来调用方法:
objectName.methodName()
这个例子利用了 String 工具的 toUpperCase() 方法来将文本转换为大写:
var message=\"大众Hello world!\"大众;
var x=message.toUpperCase();
在以上代码实行后,x 的值将是:
HELLO WORLD!
创建 JavaScript 工具
通过 JavaScript,您能够定义并创建自己的工具。
创建新工具有两种不同的方法:
定义并创建工具的实例
利用函数来定义工具,然后创建新的工具实例
创建直接的实例
这个例子创建了工具的一个新实例,并向其添加了四个属性:
实例
person=new Object();
person.firstname=\公众John\"大众;
person.lastname=\"大众Doe\"大众;
person.age=50;
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;
}
考试测验一下 »
在JavaScript中,this常日指向的是我们正在实行的函数本身,或者是指向该函数所属的工具(运行时)
创建 JavaScript 工具实例
一旦您有了工具布局器,就可以创建新的工具实例,就像这样:
var myFather=new person(\"大众John\"大众,\公众Doe\"大众,50,\"大众blue\"大众);
var myMother=new person(\"大众Sally\公众,\公众Rally\"大众,48,\公众green\"大众);
把属性添加到 JavaScript 工具
您可以通过为工具赋值,向已有工具添加新属性:
假设 personObj 已存在 - 您可以为其添加这些新属性:firstname、lastname、age 以及 eyecolor:
person.firstname=\公众John\公众;
person.lastname=\公众Doe\公众;
person.age=30;
person.eyecolor=\公众blue\"大众;
x=person.firstname;
T在以上代码实行后,x 的值将是:
John
把方法添加到 JavaScript 工具
方法只不过是附加在工具上的函数。
在布局器函数内部定义工具的方法:
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; }}
changeName() 函数 name 的值赋给 person 的 lastname 属性。
现在您可以试一下:
myMother.changeName(\"大众Doe\"大众);
考试测验一下 »
JavaScript 类
JavaScript 是面向工具的措辞,但 JavaScript 不该用类。
在 JavaScript 中,不会创建类,也不会通过类来创建工具(就像在其他面向工具的措辞中那样)。
JavaScript 基于 prototype,而不是基于类的。
JavaScript for...in 循环
JavaScript for...in 语句循环遍历工具的属性。
语法
for (variable in object){ 实行的代码……}
把稳: for...in 循环中的代码块将针对每个属性实行一次。
实例
循环遍历工具的属性:
实例
var person={fname:\公众John\"大众,lname:\"大众Doe\"大众,age:25};
for (x in person)
{
txt=txt + person[x];
}
JavaScript Number 工具JavaScript 只有一种数字类型。
可以利用也可以不该用小数点来书写数字。
JavaScript 数字
JavaScript 数字可以利用也可以不该用小数点来书写:
实例
var pi=3.14; // 利用小数点
var x=34; // 不该用小数点
极大或极小的数字可通过科学(指数)计数法来写:
实例
var y=123e5; // 12300000
var z=123e-5; // 0.00123
所有 JavaScript 数字均为 64 位
JavaScript 不是类型措辞。与许多其他编程措辞不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。
在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。JavaScript采取IEEE754标准定义的64位浮点格式表示数字,它能表示最大值为±1.7976931348623157 x 10308,最小值为±5 x 10 -324
精度
整数(不该用小数点或指数计数法)最多为 15 位。
实例
varx = 999999999999999; // x 为 999999999999999vary = 9999999999999999; // y 为 10000000000000000
考试测验一下 »
小数的最大位数是 17,但是浮点运算并不总是 100% 准确:
实例
var x = 0.2+0.1; // 输出结果为 0.30000000000000004
考试测验一下 »
八进制和十六进制
如果前缀为 0,则 JavaScript 会把数值常量阐明为八进制数,如果前缀为 0 和 \"大众x\"大众,则阐明为十六进制数。
实例
var y = 0377;
var z = 0xFF;
考试测验一下 »
默认情形下,JavaScript 数字为十进制显示。
但是你可以利用 toString() 方法 输出16进制、8进制、2进制。
实例
var myNumber=128;
myNumber.toString(16); // 返回 80
myNumber.toString(8); // 返回 200
myNumber.toString(2); // 返回 10000000
无穷大(Infinity)
当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个分外的无穷大(infinity)值,在JavaScript中以Infinity表示。同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以-Infinity表示。无穷大值的行为特性和我们所期望的是同等的:基于它们的加、减、乘和除运算结果还是无穷大(当然还保留它们的正负号)。
实例
myNumber=2;
while (myNumber!=Infinity)
{
myNumber=myNumbermyNumber; // 重复打算直到 myNumber 即是 Infinity
}
除以0也产生了无限:
实例
var x = 2/0;
var y = -2/0;
NaN - 非数字值
NaN 属性是代表非数字值的分外值。该属性用于指示某个值不是数字。可以把 Number 工具设置为该值,来指示其不是数字值。
你可以利用 isNaN() 全局函数来判断一个值是否是 NaN 值。
实例
var x = 1000 / \"大众Apple\"大众;
isNaN(x); // 返回 true
var y = 100 / \"大众1000\"大众;
isNaN(y); // 返回 false
除以0是无穷大,无穷大是一个数字:
实例
var x = 1000 / 0;
isNaN(x); // 返回 false
数字可以是数字或者工具
数字可以私有数据进行初始化,就像 x = 123;
JavaScript 数字工具初始化数据, var y = new Number(123);
实例
var x = 123;
var y = new Number(123);
typeof(x) // 返回 Number
typeof(y) // 返回 Object
实例
var x = 123;
var y = new Number(123);
(x === y) // 为 false,由于 x 是一个数字,y 是一个工具
数字属性
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
POSITIVE_INFINITY
NaN
prototype
constructor
数字方法
toExponential()
toFixed()
toPrecision()
toString()
valueOf()
JavaScript 字符串(String) 工具String 工具用于处理已有的字符块。
JavaScript 字符串
一个字符串用于存储一系列字符就像 \"大众John Doe\公众.
一个字符串可以利用单引号或双引号:
实例
var carname=\公众Volvo XC60\"大众;
var carname='Volvo XC60';
你利用位置(索引)可以访问字符串中任何的字符:
实例
var character=carname[7];
字符串的索引从零开始, 以是字符串第一字符为 [0],第二个字符为 [1], 等等。
你可以在字符串中利用引号,如下实例:
实例
var answer=\"大众It's alright\"大众;
var answer=\"大众He is called 'Johnny'\"大众;
var answer='He is called \"大众Johnny\"大众';
或者你可以在字符串中利用转义字符(\)利用引号:
实例
var answer='It\'s alright';
var answer=\"大众He is called \\公众Johnny\\"大众\公众;
考试测验一下 »
字符串(String)
字符串(String)利用长度属性length来打算字符串的长度:
实例
var txt=\"大众Hello World!\"大众;
document.write(txt.length);
var txt=\"大众ABCDEFGHIJKLMNOPQRSTUVWXYZ\"大众;
document.write(txt.length);
考试测验一下 »
在字符串中查找字符串
字符串利用 indexOf() 来定位字符串中某一个指定的字符首次涌现的位置:
实例
var str=\公众Hello world, welcome to the universe.\公众;
var n=str.indexOf(\"大众welcome\公众);
考试测验一下 »
如果没找到对应的字符函数返回-1
lastIndexOf() 方法在字符串末端开始查找字符串涌现的位置。
内容匹配
match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。
实例
var str=\公众Hello world!\"大众;
document.write(str.match(\"大众world\"大众) + \"大众<br>\"大众);
document.write(str.match(\公众World\公众) + \"大众<br>\公众);
document.write(str.match(\公众world!\公众));
考试测验一下 »
更换内容
replace() 方法在字符串中用某些字符更换另一些字符。
实例
str=\"大众Please visit Microsoft!\"大众
var n=str.replace(\公众Microsoft\公众,\公众w3cschool\"大众);
考试测验一下 »
字符串大小写转换
字符串大小写转换利用函数 toUpperCase() / toLowerCase():
实例
var txt=\"大众Hello World!\"大众; // String
var txt1=txt.toUpperCase(); // txt1 文本会转换为大写
var txt2=txt.toLowerCase(); // txt2 文本会转换为小写
考试测验一下 »
字符串转为数组
字符串利用split()函数转为数组:
实例
txt=\公众a,b,c,d,e\"大众 // String
txt.split(\公众,\"大众); // 利用逗号分隔
txt.split(\公众 \公众); // 利用空格分隔
txt.split(\"大众|\"大众); // 利用竖线分隔
考试测验一下 »
分外字符
Javascript 中可以利用反斜线(\)插入分外符号,如:撇号,引号等其他分外符号。
查看如下 JavaScript 代码:
var txt=\"大众We are the so-called \公众Vikings\"大众 from the north.\"大众;
document.write(txt);
在JavaScript中,字符串的开始和停滞利用单引号或双引号。这意味着,上面的字符串将被切成: We are the so-called
办理以上的问题可以利用反斜线来转义引号:
var txt=\公众We are the so-called \\"大众Vikings\\公众 from the north.\公众;
document.write(txt);
JavaScript将输出精确的文本字符串:We are the so-called \公众Vikings\"大众 from the north.
下表列出其他分外字符,可以利用反斜线转义分外字符:
字符串属性和方法
属性:
length
prototype
constructor
方法:
charAt()
charCodeAt()
concat()
fromCharCode()
indexOf()
lastIndexOf()
match()
replace()
search()
slice()
split()
substr()
substring()
toLowerCase()
toUpperCase()
valueOf()
JavaScript Date(日期) 工具日期工具用于处理日期和韶光。
在线实例
<a target=\公众_blank\"大众 href=\"大众http://www.runoob.com/try/try.php?filename=tryjsref_date\公众 返回当日的日期和韶光<=\公众\公众 a=\公众\"大众 style=\公众margin: 0px; padding: 0px; color: rgb(100, 133, 76); text-decoration-line: underline; transition-duration: 0.2s; transition-property: opacity;\"大众>
如何利用 Date() 方法获得当日的日期。
<a target=\公众_blank\公众 href=\公众http://www.runoob.com/try/try.php?filename=tryjsref_date\"大众 返回当日的日期和韶光<=\"大众\"大众 a=\"大众\"大众 style=\"大众margin: 0px; padding: 0px; color: rgb(100, 133, 76); transition-duration: 0.2s; transition-property: opacity; font-family: \"大众Helvetica Neue\"大众, Helvetica, \"大众PingFang SC\公众, \"大众Hiragino Sans GB\"大众, \"大众Microsoft YaHei\"大众, \公众Noto Sans CJK SC\"大众, \"大众WenQuanYi Micro Hei\"大众, Arial, sans-serif; font-size: 12px; white-space: normal;\"大众>
<a target=\"大众_blank\"大众 href=\"大众http://www.runoob.com/try/try.php?filename=tryjsref_date\"大众 返回当日的日期和韶光<=\公众\"大众 a=\"大众\"大众 style=\"大众margin: 0px; padding: 0px; color: rgb(100, 133, 76); text-decoration-line: underline; transition-duration: 0.2s; transition-property: opacity;\"大众>getFullYear()
利用 getFullYear() 获取年份。
getTime()
getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。
setFullYear()
如何利用 setFullYear() 设置详细的日期。
toUTCString()
如何利用 toUTCString() 将当日的日期(根据 UTC)转换为字符串。
getDay()
如何利用 getDay() 和数组来显示星期,而不仅仅是数字。
Display a clock
如何在网页上显示一个钟表。
完全的 Date 工具参考手册
我们供应 JavaScript Date 工具参考手册,个中包括所有可用于日期工具的属性和方法。JavaScript Date 工具参考手册。
该手册包含了对每个属性和方法的详细描述以及干系实例。
创建日期
Date 工具用于处理日期和韶光。
可以通过 new 关键词来定义 Date 工具。以下代码定义了名为 myDate 的 Date 工具:
有四种办法初始化日期:
new Date() // 当前日期和韶光
new Date(milliseconds) //返回从 1970 年 1 月 1 日至今的毫秒数
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
上面的参数大多数都是可选的,在不指定的情形下,默认参数是0。
<p从 1970=\"大众\"大众 年=\公众\"大众 1=\"大众\公众 月=\"大众\"大众 日通用一天打算为86,400,000毫秒<=\"大众\公众 p=\"大众\"大众 style=\公众color: rgb(51, 51, 51); font-family: \"大众Helvetica Neue\公众, Helvetica, \"大众PingFang SC\公众, \公众Hiragino Sans GB\"大众, \"大众Microsoft YaHei\"大众, \公众Noto Sans CJK SC\"大众, \"大众WenQuanYi Micro Hei\"大众, Arial, sans-serif; font-size: 12px; white-space: normal;\公众>
实例化一个日期的一些例子:
var today = new Date()
var d1 = new Date(\公众October 13, 1975 11:13:00\"大众)
var d2 = new Date(79,5,24)
var d3 = new Date(79,5,24,11,33,0)
设置日期
通过利用针对日期工具的方法,我们可以很随意马虎地对日期进行操作。
不才面的例子中,我们为日期工具设置了一个特定的日期 (2010 年 1 月 14 日):
var myDate=new Date();
myDate.setFullYear(2010,0,14);
不才面的例子中,我们将日期工具设置为 5 天后的日期:
var myDate=new Date();
myDate.setDate(myDate.getDate()+5);
把稳: 如果增加天数会改变月份或者年份,那么日期工具会自动完成这种转换。
两个日期比较
日期工具也可用于比较两个日期。
下面的代码将当前日期与 2100 年 1 月 14 日做了比较:
var x=new Date();x.setFullYear(2100,0,14);var today = new Date();if (x>today){ alert(\"大众本日是2100年1月14日之前\"大众);}else{ alert(\公众本日是2100年1月14日之后\"大众);}