JavaScript(缩写:JS) 是互联网上最流行的脚本语言,是一种动态类型、弱类型、
基于原型的语言,内置支持类型。
最早是在 HTML(标准通用标记语言下的一个应用)网页上使用,
用来给 HTML 网页增加动态功能。
脚本语言
JavaScript 是一种解释型的脚本语言, C、C++等语言先编译后执行,
而JavaScript 是在程序的运行过程中逐行进行解释。
基于对象。
JavaScript 是一种基于对象的脚本语言,不仅可以创建对象, 也能用现有对象。
简单。
JavaScript 语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,
是基于 Java 基本语句和控制的脚本语言,其设计简单紧凑。
动态性。
JavaScript 是一种采用事件驱动的脚本语言,
它不需要经过 Web 服务器就可以对用户的输入做出响应。
跨平台性。
JavaScript 脚本语言不依赖于操作系统,仅需要浏览器的支持。
HTML 页面是静态的,而 JavaScript 可以弥补 HTML 语言的缺陷,
实现 Web 页面客户端的动态效果。
JavaScript 可以输出字符、数字、以及 HTML。
JavaScript 作用:
代码如下:
<html>
<head>
<meta charset="utf-8">
head>
<body>
<script> document.write(hello world); script>
body>
html>
效果
hello world
页头引入就是将 script 标签放在 head 标签中
<head>
<meta charset="utf-8">
<script> console.log("hello world") script>
head>
页头引入就是将 script 标签放在 body 标签中
<body>
<script> console.log("hello world") script>
body>
在元素事件中引入 JavaScript 就是在标签内设置事件属性,调用 JavaScript。
<body>
点我p>
body>
<body>
<script type="text/javascript" src="URL"><script>
body>
在外部文件中放置脚本有如下优势:
通过 alert()方法输出数据。
<script> window.alert("我是警告框。"); script>
<script> document.write("这是输入内容,输入到HTML中") script>
<script> document.write("这是输入内容,输入到HTML中") script>
更改 HTML 元素的 innerHTML 属性是在 HTML 中显示数据的常用方法。
<script> document.getElementById("demo").innerHTML = 5 + 6; script>
JavaScript 语句向浏览器发出的命令。语句的作用是告诉浏览器该做什么。
JavaScript 语句由以下构成:值、运算符、表达式、关键词和注释。
<script> document.getElementByld("demo").innerHTML="Hello World"; script>
JavaScript 分号的作用:
JavaScript 空白字符
JavaScript 代码(或者只有 JavaScript)是 JavaScript 语句的序列。
浏览器会按照编写顺序来执行每条语句。
1. JavaScript 保留关键字
break
case catch continue
debugger default delete do
else
false finally for function
if in instanceof
new null
return
switch
this throw true try typeof
var void
while with
2. JavaScript 将来可用的保留关键字
abstract
boolean byte
char class const
double
enum export extends
final float
goto
implements import int interface
long
native
package private protected public
short static super sychronized
throws transient
volatile
3. 应避免使用的单词
1. 标识符格式
2. Smalltalk 法则
注意:
变量是用于存储信息的"容器"。
变量的作用域
JavaScript 注释可用于提高代码的可读性。 注释不会被执行。
注释常用来调试程序,因为注释掉的代码并不会被执行。
在写代码的时候,注释是很有必要的,提高了代码的可读性。要养成写注释的习惯。
<script> 1. 单行注释:以 // 开头。 2. 多行注释:以 /* 开始,以 */ 结尾。 script>
1. 字符和字符串
字符是指计算机中使用的字母、数字、字和符号,包括:1、A、·#¥%…-*()–+等。
1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节 。
字符串(String)是由数字、字母、下划线组成的一串字符,是一个 string 对象。
所有的 ASCII 码都可以用“\”加数字(一般是 8 进制数字)来表示。
转义字符 | ASCII 码值(十进制) | 意义 |
---|---|---|
\a | 007 | 响铃(BEL) |
\b | 008 | 退格(BS) ,将当前位置移到前一列 |
\f | 012 | 换页(FF),将当前位置移到下页开头 |
\n | 010 | 换行(LF) ,将当前位置移到下一行开头 |
\r | 013 | 回车(CR) ,将当前位置移到本行开头 |
\t | 009 | 水平制表(HT) (跳到下一个 TAB 位置) |
\v | 011 | 垂直制表(VT) |
\ | 092 | 代表一个反斜线字符’’’ |
’ | 039 | 代表一个单引号(撇号)字符 |
" | 034 | 代表一个双引号字符 |
? | 063 | 代表一个问号 |
\0 | 000 | 空字符(NULL) |
\ooo | 三位八进制 | 1 到 3 位八进制数所代表的任意字符 |
\xhh | 二位十六进制 | 1 到 2 位十六进制所代表的任意字符 |
说明:
语言是相通的,对于 js 也是一样的,只是我们常用的主要是" ,\等。
所以可以知道常用的的意义就好。
整型就是不含小数点的数据。
例:
var x1 = 34; //不使用小数点来写
数据的值含有小数点,那么它就是浮点型数据。
例:
var x2 = 34.00; //使用小数点来写
布尔型数据就是逻辑类型,它只能有两个值:true 或 false。
例:
var x = true;
var y = false;
说明:
数组是一组相同数据类型的集合。就像人类是所有人的集合。
例:
//第一种
var people=new Array();
people[0]="name";
people[1]="sex";
people[2]="old";
//第二种
var people=new Array("name","sex","old");
总结:
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数……
此外,JavaScript 允许自定义对象。
对象只是带有属性和方法的特殊数据类型 。
例:直接给属性赋值
var person={name:"小明", sex:"男", old:20};
//对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value)来定义。
例:通过构造函数来给属性赋值
function person(firstname,lastname,age,eyecolor) {
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
null 表示"没有对象",即该处不应该有值。
典型用法:
undefined 表示"缺少值",就是此处应该有一个值,但是还没有定义。
典型用法:
总结:
NULL 和 undefined 的区别几乎没有,都是无。
如果硬要区别:null 是没有值,值为空。undefined 是没有值,没有被定义,
所以主要看有没有被定义来区分二者。
typeof 的作用是返回数据的类型。
返回值 | 对应的数据类型 |
---|---|
undefined | 这个值未定义 |
boolean | 这个值是布尔值 |
string | 这个值是字符串 |
number | 这个值是数值 |
object | 这个值是对象或 |
function | 这个值是函数 |
例:
var person = {name:"小明", sex:"男", old:20};
document.write( typeof(person) + "," + typeof(m) );
结果:object, undefined
执行变量或值之间的运算的符号。
算数运算符用于对数字执行算数运算
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 求余数 |
++ | 自增 |
– | 自减 |
赋值运算符向 JavaScript 变量赋值
运算符 | 例子 | 等同于 |
---|---|---|
= | x = y | x = y |
+= | x += y | x = x + y |
-= | x -= y | x = x - y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
%= | x %= y | x = x % y |
返回值只会是 true 或者 false,如果成立则为 true,不然为 false.
运算符 | 描述 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
=== | 等值等型 |
!= | 非等于 |
!== | 不等值或不等型 |
? | 三元运算符 |
逻辑运算符用于测定变量或值之间的逻辑。
运算符 | 描述 |
---|---|
&& | 逻辑与 |
! | 逻辑非 |
运算符 | 描述 |
---|---|
typeof | 返回变量的类型。 |
instanceof | 返回 true,如果对象是对象类型的实例。 |
表达式是由数字、运算符、分组符号(括号)、变量和常量等以能求得数值的
有意义排列方法所得的组合。
一个表达式会产生一个值,它可以放在任何需要一个值的地方。
算术表达式是指由数字和运算符号组成的式子
例:
var m = 5 + 3 * 4;
document.write(m);
结果:17
用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式。
逻辑表达式的值是一个逻辑值,即“true”或“false” 。
例:
var m = 9 > 6;
document.write(m);
结果:true
三目表达式就是三元运算符构成的式子
例:
var m = ( 3 > 2 ) ? 3 : 4;
document.write(m);
结果:3
复杂表达式是由原始表达式和操作符(operator)组合而成,包括属性访问表达式、
对象创建表达式和函数表达式
运算优先顺序为:
A. 括号→函数→乘方→乘、除→加、减→字符连接运算符→关系运算符→逻辑运算符
B. 如果同级的运算是按从左到右次序进行;多层括号由里向外。
例:
<script> var x; var m = ( x = ( 3 > 2 ) ? 9 : 2 ) * ( 3 + ( 5 - 2 ) * 4 ); alert( "m is " + m ); script>
结果:m is 135
语法:
function 函数名(参数)
{
执行代码
}
说明:
函数名就是函数的名字。
function function_name()
{
alert("Hello World!");
}
函数命名规则:
函数参数就是在调用函数时,你向其传递的值,参数是可以为空的。
说明:
函数的调用就是在我们定义一个函数之后,我们应该如何使用这个函数。
例:不同的参数实现同样的效果
<html lang="en">
<head>
<meta charset="UTF-8">
head>
<body>
<button onclick=" myFunction('小明','男')">实参button>
<button onclick="myFunction(Name,Sex)">已赋值变量button>
<button onclick="myFunction(NAME,SEX)">已赋值常量button>
body>
<script> var Name = "小明"; var Sex ="男"; const NAME ="小明"; const SEX = "男"; function myFunction(name,sex){ alert("name is "+name+" , "+"sex is "+sex); } script>
html>
当我们希望函数返回一个值到调用它的地方的时候,可以通过 return 来实现哦。
函数不会再执行 return 之后的语句 。
例:
function myFunction()
{
var name="小明";
return name;
name="小花";
}
函数的拆分是逻辑意义上的拆分。为了方便使用而根据实际情况来做具体处理的。
运用函数拆分的情况:
总结:
定义全局变量的方式
例1:在 js 的 function 外定义一个变量
// Sex就是全局变量
var Sex ="男";
function count(){
alert(" sex is "+Sex);
}
例2: 不使用 var,直接给变量赋值,隐式的声明了全局变量 Name
// 这里 Name,Sex 都是全局变量
Name = "小明";
var Sex ="男";
function count(){
alert("name is "+Name+" sex is "+Sex);
}
例3: 使用 window.变量名定义变量,也是全局变量。
// 这里 Name,Sex,old 都是全局变量
Name = "小明";
var Sex ="男";
window.old="19";
function count(){
alert("name is "+Name+" sex is "+Sex+"old is"+old);
}
总结:
局部变量:就是声明在函数体中的变量,并且只能在当前函数体内访问。
例:声明两个局部变量
function test() {
a = 30;
var b = 20;
}
说明:
内部函数又叫 js 内置函数,是浏览器内核自带的,不用引入任何函数库就可直接使用的函数
函数 | 描述 |
---|---|
alert 函数 | 显示一个警告对话框,包括一个 OK 按钮。 |
confirm 函数 | 显示一个确认对话框,包括 OK、Cancel 按钮。 |
escape 函数 | 将字符转换成 Unicode 码。 |
eval 函数 | 计算表达式的结果。 |
isNaN 函数 | 测试是(true)否(false)不是一个数字。 |
parseFloat 函数 | 将字符串转换成符点数字形式。 |
parseInt 函数 | 将符串转换成整数数字形式(可指定几进制)。 |
prompt 函数 | 显示一个输入对话框,提示等待用户输入。 |
函数 | 描述 |
---|---|
join 函数 | 转换并连接数组中的所有元素为一个字符串。 |
langth 函数 | 返回数组的长度。 |
escape 函数 | 将字符转换成 Unicode 码。 |
reverse 函数 | 将数组元素顺序颠倒。 |
sort 函数 | 将数组元素重新排序。 |
函数 | 描述 |
---|---|
getDate 函数 | 返回日期的“日”部分,值为 1~31 |
getDay 函数 | 返回星期几,值为 0~6,其中 0 表示星期日,1 表示星期一,…,6 表示星期六 |
getHours 函数 | 返回日期的“小时”部分,值为 0~23 |
getMinutes 函数 | 返回日期的“分钟”部分,值为 0~59 |
getMonth 函数 | 返回日期的“月”部分,值为 0~11。其中 0 表示 1 月,…,11 表示12 月 |
getSeconds 函数 | 返回日期的“秒”部分,值为 0~59 |
getTime 函数 | 返回系统时间 |
getTimezoneOffset 函数 | 返回此地区时差(当地时间与 GMT 格林威治标准时间地区时差),单位分钟。 |
getYear 函数 | 返回日期的“年”部分。返回值以 1900 年为基数 |
parse 函数 | 返回从 1970 年 1 月 1 日零时整算起的毫秒数(当地时间)。 |
setDate 函数 | 设定日期的“日”部分,值为 0~31。 |
setHours 函数 | 设定日期的“小时”部分,值为 0~23。 |
setMinutes 函数 | 设定日期的“分钟”部分,值为 0~59。 |
setMonth 函数 | 设定日期的“月”部分,值为 0~11。其中 0 表示 1 月, …, 11 表示 12 月。 |
setSeconds 函数 | 设定日期的“秒”部分,值为 0~59。 |
setTime 函数 | 设定时间。时间数值为 1970 年 1 月 1 日零时整算起的毫秒数。 |
setYear 函数 | :设定日期的“年”部分。 |
toGMTString 函数 | 转换日期成为字符串,为 GMT 格林威治标准时间。 |
setLocaleString 函数 | 转换日期成为字符串,为当地时间。 |
UTC 函数 | 返回从 1970 年 1 月 1 日零时整算起的毫秒数,以 GMT 格林威治标准时间计算。 |
函数 | 描述 |
---|---|
abs 函数 | 返回一个数字的绝对值。 |
acos 函数 | 返回一个数字的反余弦值,结果为 0~π弧度(radians)。 |
asin函数 | 返回一个数字的反正弦值,结果为-π/2~π/2 弧度。 |
atan 函数 | 返回一个数字的反正切值,结果为-π/2~π/2 弧度。 |
atan2 函数 | 返回一个坐标的极坐标角度值。 |
ceil 函数 | 返回一个数字的最小整数值(大于或等于)。 |
cos 函数 | 返回一个数字的余弦值,结果为-1~1。 |
exp 函数 | 返回 e(自然对数)的乘方值。 |
floor 函数 | 返回一个数字的最大整数值(小于或等于)。 |
log 函数 | 自然对数函数,返回一个数字的自然对数(e)值。 |
max函数 | 返回两个数的最大值。 |
min 函数 | 返回两个数的最小值。 |
pow函数 | 返回一个数字的乘方值。 |
random 函数 | 返回一个 0~1 的随机数值。 |
round 函数 | 返回一个数字的四舍五入值,类型是整数。 |
sin 函数 | 返回一个数字的正弦值,结果为-1~1。 |
sqrt 函数 | 返回一个数字的平方根值。 |
tan 函数 | 返回一个数字的正切值。 |
函数 | 描述 |
---|---|
anchor 函数 | 产生一个链接点(anchor)以作超级链接用 |
big 函数 | 将字体加到一号 |
blink函数 | 使字符串闪烁 |
bold 函数 | 使字体加粗 |
charAt 函数 | 返回字符串中指定的某个字符 |
fixed 函数 | 将字体设定为固定宽度字体 |
fontcolor 函数 | 设定字体颜色 |
fontsize 函数 | 设定字体大小 |
indexOf 函数 | 返回字符串中第一个查找到的下标 index,从左边开始查找 |
italics 函数 | 使字体成为斜体字 |
lastIndexOf 函数 | 返回字符串中第一个查找到的下标 index,从右边开始查找 |
length 函数 | 返回字符串的长度 |
link 函数 | 产生一个超级链接 |
small 函数 | 将字体减小一号 |
strike 函数 | 在文本的中间加一条横线。 |
sub 函数 | 显示字符串为下标字(subscript) |
substring 函数 | 返回字符串中指定的几个字符 |
sup 函数 | 显示字符串为上标字(superscript) |
toLowerCase 函数 | 将字符串转换为小写 |
toUpperCase 函数 | 将字符串转换为大写 |
闭包就是能够读取其他函数内部变量的函数。
例3: 使用 window.变量名定义变量,也是全局变量。
// 函数 f2 就是一个闭包。
function f1(){
var n=999;
nAdd=function(){n+=1}
function f2(){
alert(n);
}
return f2;
}
例:直接将函数名作为参数,直接调用
function test1(Func) {
Func();
}
function test2() {
alert("我是 test2");
}
test1(test2);
例:定义一个调用以带参数的函数为参数的函数
function test1(Func) {
Func(mydata);
}
function test2(data) {
alert(data);
}
test1(test2("带参数的函数,作为参数"));
例:作为参数的函数不再单独定义
function test1(Func) {
Func("hello");
}
test1(function(data) {
alert(data);
});
回调函数:
简单通俗点就是当有 a 和 b 两个函数,当 a 作为参数传给 b,并在 b中执行,
这时 a 就是一个回调(callback)函数,如果 a 是一个匿名函数,则为匿名回调函数。
回调函数是一个作为变量传递给另外一个函数的函数,它在主体函数执行完之后执行。
递归就是函数自己调用自己
例:简单的阶乘函数
function f(x) {
if (x === 1) {
return 1;
} else {
return x * f(x - 1);
}
}
alert("结果是:"+f(3));
说明:
顺序结构是 JavaScript 最基本的结构,说白了就是按照从上到下、从左到右的顺序执行
JavaScript 中,程序总体是按顺序结构执行的,但在顺序结构可包含选择结构和循环结构
例:实现内容的替换
<body>
<h1>My Web Pageh1>
<p id="demo">A Paragraph.p>
<div id="myDIV">A DIV.div>
<script> document.getElementById("demo").innerHTML="Hello World"; document.getElementById("myDIV").innerHTML="How are you?"; script>
body>
效果:
My Web Page
Hello World
How are you?
只有当指定条件为 true 时,该语句才会执行代码。
语法:
if (condition) {
当条件为 true 时执行的代码
}
注意:
请使用小写的 if。使用大写字母(IF)会生成 JavaScript 错误!
使用 if…else 语句在条件为 true 时执行代码,在条件为 false 时执行其他代码
语法:
if (condition) {
当条件为 true 时执行的代码
} else {
当条件不为 true 时执行的代码
}
使用 if…else if…else 语句来选择多个代码块之一来执行
语法:
if (condition1) {
当条件 1 为 true 时执行的代码
} else if (condition2) {
当条件 2 为 true 时执行的代码
} else {
当条件 1 和 条件 2 都不为 true 时执行的代码
}
switch 语句用于基于不同的条件来执行不同的动作,但条件必须是确定的值
语法:
switch(表达式) {
case 值 1:
执行代码块 1
break;
case 值 2:
执行代码块 2
break;
...
case 值 n:
执行代码块 n
break;
default:
与 case 值 1 、 case 值 2...
}
说明:
for循环语句是在创建循环时常用到的语句,循环次数可以为零
for 循环结构:
for (初始化变量; 判断条件; 更新迭代){
循环语句
}
说明:
例:用 for 循环来输出 0 到 100 的累加值
<script> for (var i = 0,sum=0; i<=100; i++) { sum+=i; } document.write("0 到 100 的累加值是:"sum); script>
结果:
0到100的累加值是:5050
While 循环在指定条件为真时循环执行代码块。只要指定条件为正,循环就可一直执行
语法:
while (条件) {
需要执行的代码
}
在之前的 switch 语句中,break 语句用于跳出 switchu()。 break 语句用于跳出循环
例:用 break 语句来跳出 for 循环
<script> for (var i = 1; i<8; i++) { document.write(i+"
"); if(i==3){ break; } } script>
结果:
1
2
3
continue 用于跳过循环中的一个迭代
continue 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)
例:通过 continue 来跳过当前循环,执行下一个循环。
<script> for (var i = 1; i<=5; i++) { if(i==3){ continue; } document.write(i+"
"); } script>
结果:
1
2
3
4
5
总结:
根据情况的不同,选择使用 break 还是 continue
break 是跳出整个循环,不管当前循环之后还有没有代码都不再执行
continue 是跳出当前循环,执行下一个循环
JavaScript 字符串用于存储和处理文本
字符串可以是插入到引号中的任何字符
可以使用单引号或双引号如:
var carname = "Fen Zhen";
var carname = 'Fen Zhen';
var character = carname[7];
第一个字符索引值为 [0],第二个为 [1],以此类推。
在字符串中使用引号,字符串中的引号不要与字符串的引号相同如:
var answer = "It's alright";
var answer = "He is called 'fenzhen'";
var answer = 'He is called "fenzhen"';
<p id="demo">p>
<script> var x = 'It\'s alright'; var y = "He is called \"Johnny\""; document.getElementById("demo").innerHTML = x + "
" + y; script>
效果:
It’s alright
He is called “Johnny”
定义:
length 属性可返回字符串中的字符数目
语法:
stringObject.length
例:实现返回字符串的长度
<script type="text/javascript"> var txt="Hello World!" document.write(txt.length) script>
效果:
12
功能: 返回字符串的第几个字符格式:
string.charAt(index)
注意:
index 必须是整数。0、1、2……。
字符串的的一个字符的下标是 0,第二个字符的下标是 1,之后的以次类推。
在 javascript 中,字符串可被当做数组来处理,所以用数组下标的方式来访问单个字符。
<script type="text/javascript"> var str="hello world"; console.log(str[0]); //输出 h script>
超出范围的返回值不同
使用 string[index]的方式,对于超出字 index 范围的,会返回 undefined。
而使用 charAt(index)的方式,对于超出范围的会返回一个空的字符串。
兼容性问题
string[index]的方式在 IE6~8 下会返回 undefined, 也就是 IE6~8 不兼容此方法。
而charAt(index)经测试,在 IE6~8 下也能够正常返回值。
总结
如果不考虑 IE6~8 ,就可随便用,至于性能,都是 JavaScript的方法,差别微乎其微。如果要考虑IE6~8的话,还是使用 charAt()比较好,安全又放心。
match() 方法可在字符串内检索指定的值格式
string.match(regexp)
说明:
match() 方法将检索字符串 String Object,找到一个或多个与 regexp 匹配的文本。
这个方法的行为在很大程度上有赖于 regexp 是否具有标志 。
如果regexp 没有标志 ,那 match() 方法就只能在 stringObject 中执行一次匹配。
如果没有找到任何匹配的文本, match() 将返回 null。
否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
match 也是在目标字串对象中寻找与关键词匹配与否的一个方法,
它的强大功能在于通过关键词的规则创建可以实现复杂搜寻功能,非常灵活。
不建立规则前提下, match 可当作 search来使用,语法也一样,
不同的是,它返回的是关键词自身(若匹配)和 null(若不匹配)这没有关系,
如果只为了检测匹配。显然,这不是它存在于javascript 世界中的理由,
它定有不同于 search 的特色,即通过规则创建完成实现通盘匹配。
search() 方法用于检索字符串中指定的字符串格式
string.search(searchvalue)
说明:
search 在一个字串对象查找关键词字串(规范表达式,regular expression),
若匹配则返回关键词在目标字串中第一次出现的位置序列,如不匹配,返回-1。
search 方法只关心有无匹配,一旦找到匹配,就提供返回值,立刻中断查找的执行
当我们只需要验证有无匹配的操作时,用 search 既简单又高效。
举例:实现返回所查找的字符在字符串中第一次出现的位置代码
<script> window.onload = function() { var MyStr = "前端大学是学习编程网站,一个学习编程的乐园!"; var Re = "编程"; var ShowStr = MyStr.search(Re); alert(ShowStr); } script>
结果: 7
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1 格式
string.indexOf(searchvalue,star)
说明:
其中 star 是可选参数, 规定在字符串中开始检索的位置。
它的合法取值是 0 到 stringObject.length - 1。
如省略该参数,则将从字符串的首字符开始检索。
indexOf 是区分大小写的
举例:实现在字符串的第六个字符开始查找所差字符在字符串中首次出现的位置
<script> function myFunction(){ var str="Hello welcome world, welcome to the universe."; var n=str.indexOf("welcome","7"); document.getElementById("demo").innerHTML=n; } script>
功能:
格式:
string.replace(searchvalue,newvalue)
说明:
举例:实现局部字符串的替换
<body>
<p>单击按钮将段落中“Microsoft”替换成“www.qianduandaxue.com”:p>
<p id="demo">Visit Microsoft!p>
<button onclick="myFunction()">点我button>
<script> function myFunction(){ var str=document.getElementById("demo").innerHTML; var n=str.replace("Microsoft","www.qianduandaxue.com"); document.getElementById("demo").innerHTML=n; } script>
body>
功能:用于把字符串转换为小写
格式:
string.toLowerCase()
功能:用于把字符串转换为大写
格式:
string.toUpperCase()
举例:将字符串中的所有字符都换成小写或将字符串中所有字符都换成大写
<script> var txt="Hello World!"; document.write(txt.toLowerCase() + "
"); document.write(txt.toUpperCase()); script>
结果:
hello world!
HELLO WORLD!
功能:用于连接两个或多个字符串格式:
string.toUpperCase()
提示:
该方法没有改变原有字符串,但是会返回连接两个或多个字符串新字符串
举例:实现 Hello 和 world! 两段字符串的连接
<script> function myFunction(){ var txt1 = "Hello "; var txt2 = "world!"; var n=txt1.concat(txt2); document.getElementById("demo").innerHTML=n; } script>
结果:
Hello World!
这方法是最便捷快速的,如果只连接 100 个以下的字符串建议用这种方法最方便
举例:实现两个字符串的连接
<script> function myFunction(){ var txt1 = "Hello "; var txt2 = "world!"; var n=txt1.concat(txt2); document.getElementById("demo").innerHTML=n; } script>
substring() 方法用于提取字符串中介于两个指定下标之间的字符
语法:
stringObject.substring(start,stop)
参数 | 描述 |
---|---|
start | 必需。一个非负整数,规定要提取的子串的第一个字符在stringObject 中的位置。 |
stop | 可选。一个非负整数,比要提取的子串的最后一个字符在stringObject 中的位置多 1。 如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到
stop-1 处的所有字符,其长度为 stop 减 start 。
说明:
substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。
如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
重要事项:
与 slice()和 substr 方法不同的是,substring() 不接受负的参数
举例 1:使用 substring() 从字符串中提取一些字符
<script type="text/javascript"> var str="Hello world!" document.write(str.substring(3)) script>
结果:
lo world!
举例 2:带两个参数的字符截取
<script type="text/javascript"> var str="Hello world!" document.write(str.substring(3)) script>
结果:
lo w
数值型(Number),字符类型(String),布尔值型(Boolean), null 和 underfined
值类型理解:
例:
var a=10; //开辟一块内存空间保存变量 a 的值“10”;
var b=a; //给变量 b 开辟一块新的内存空间,将 a 的值“10”赋值一份保存到新的内存里
//a 和 b 的值以后无论如何变化,都不会影响到对方的值
函数,对象,数组等
引用类型理解:
例:
var a={x:1,y:2}
//需要开辟内存空间保存对象,变量 a 的值是一个地址,这个地址指向保存对象的空间;
var b=a;
//将 a 的指引地址赋值给 b,而并非复制一给对象且新开一块内存空间来保存;
//这个时候通过 a 来修改对象的属性,则通过 b 来查看属性时对象属性已经发生改变;
js 解释器有自己的内存管理机制,当不再有任何一个引用指向一个对象时,
解释器就会认为此对象没用了,然后在动回收此对象所占用的内存资源;
整数包括正整数,负整数和 0.
浮点数是表示小数的一种方法。
功能: Math 对象用于执行数学任务
语法:
var pi_value = Math.PI;
var sqrt_value = Math.sqrt(15);
说明:
属性:
属性 | 描述 |
---|---|
Math.E | 返回算术常量 e,即自然对数的底数(约等于 2.718) |
Math.LN2 | 返回 2 的自然对数 |
Math.LN10 | 返回 10 的自然对数 |
Math.LOG2E | 返回以 2 为底的 e 的对数(约等于 1.414) |
Math.LOG10E | 返回以 10 为底的 e 的对数(约等于0.434) |
Math.PI | 返回圆周率(PI) |
Math.SQRT2 | 返回 2 的平方根 |
Math.SQRT1_2 | 返回 1/2 的平方根 |
功能 :
min() 方法可返回指定的数字中带有最小值的数字
max() 方法可返回指定的数字中带有最大值的数字
语法:
Math.min(n1,n2,n3,...,nX)
Math.max(n1,n2,n3,...,nX)
例:实现向上和向下取整
// 对所有介于 25 和 26(不包括 26)之间的数值,Math.ceil()始终返回 26,因为它是向上舍入。
alert(Math.ceil(25.9)); //取整后为 26
alert(Math.ceil(25.5)); //取整后为 26
alert(Math.ceil(25.1)); //取整后为 26
// Math.round()方法只在数值大于等于 25.5 时返回 26;否则返回 25。
alert(Math.round(25.9)); //取整后为 26
alert(Math.round(25.5)); //取整后为 26
alert(Math.round(25.1)); //取整后为 25
// Math.floor()对所有介于 25 和 26(不包括 26)之间的数值都返回 25。
alert(Math.floor(25.9)); //取整后为 25
alert(Math.floor(25.5)); //取整后为 25
alert(Math.floor(25.1)); //取整后为 25
例:标准取整
// round 执行的是运算是四拾伍入方法。
Math.round(12.2) // 返回 12
Math.round(12.7) //返回 13
Math.round(12.0) //返回 12
例:
<script language="javascript"> document.write("0 的绝对值为:",Math.abs(0),"
"); document.write("1 的绝对值为:",Math.abs(1),"
"); document.write("-1 的绝对值为:",Math.abs(-1),"
"); script>
结果:
0 的绝对值为:0
1 的绝对值为:1
-1 的绝对值为:1
功能: 可返回介于 0 ~ 1 之间的一个随机数,且每次返回的结果都不一样。
例:返回 0~1 之间的一个随机数
<script type="text/javascript"> document.write(Math.random()) script>
结果:
0.9466723923
功能: 可返回一个数的平方根
注意:
其中参数“X”是必须的。若参数小于 0,则返回 NaN。
例:返回几个数的平方根
var a=Math.sqrt(0);
var b=Math.sqrt(1);
var c=Math.sqrt(9);
var d=Math.sqrt(0.64);
var e=Math.sqrt(-9);
返回值为:
0
1
3
0.8
NaN
功能: 可返回 x 的 y 次幂的值。
说明:
例:把 pow() 运用到不同的数字组合上
<script type="text/javascript"> document.write(Math.pow(0,0) + "
") document.write(Math.pow(0,1) + "
") document.write(Math.pow(1,1) + "
") document.write(Math.pow(1,10) + "
") document.write(Math.pow(2,3) + "
") document.write(Math.pow(-2,3) + "
") document.write(Math.pow(2,4) + "
") document.write(Math.pow(-2,4) + "
") script>
返回值结果:
1
0
1
1
8
-8
16
16
js 提供了 parseInt()和 parseFloat()两个转换函数。
例:
parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN
例:
parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
例:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10
例:使用 parseFloat()方法的演示
parseFloat("1234blue"); //returns 1234.0
parseFloat("0xA"); //returns NaN
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN
使用强制类型转换能够访问特定的值,即使它是还有一种类型的。
ECMAScript 中可用的 3 种强制类型转换例如以下:
用这三个函数之中的一个转换值,将创建一个新值,存放由原始值直接转换成的值。
当转换的值至少有一个字符的字符串、非 0 数字或对象时,Boolean()函数将返回 true。
假设该值是空字符串、数字 0、undefined或 null,它将返回 false。
例:能够用以下的代码段测试 Boolean 型的强制类型转换。
Boolean(""); //false – empty string
Boolean("hi"); //true – non-empty string
Boolean(100); //true – non-zero number
Boolean(null); //false - null
Boolean(0); //false - zero
Boolean(new Object()); //true – object
Number()的强制类型转换与 parseInt()和 parseFloat()方法的处理方式相似,
仅仅是它转换的是整个值,而不是部分值。
例:
Number(false) //输出 0
Number(true) //输出 1
Number(undefined) //输出 NaN
Number(null) //输出 0
Number( "5.5 ") //输出 5.5
Number( "56 ") //输出 56
Number( "5.6.7 ") //输出 NaN
Number(new Object()) //输出 NaN
Number(100) //输出 100
最后一种强制类型转换方法 String()是最简单的。
例:
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won't work, causes an error
例:
<script> var str= '012.345 '; var x = str-0; x = x*1; script>
说明:
上例利用 js 的弱类型的特点,仅仅进行了算术运算,实现了字符串到数字的类型转换,只是这种方法还是不推荐的。
比如存储四个变量下面两种定义方法是一样的效果:
方法一:定义多个单变量
var str1="HTML"
var str1="CSS"
var str1="JAVASCRIPT"
var str1="PHP"
方法二:定义数组
var ayy= new arry("HTML","CSS","JAVASCRIPT","PHP");
对象:
var arr = new Array();
1. 可以添加任意多的值
var mycars = new Array();
mycars[0] = "Saab";
mycars[1] = "Volvo";
mycars[2] = "BMW";
2. 可以使用一个整数自变量来控制数组的容量
var mycars = new Array(3);
mycars[0] = "Saab";
mycars[1] = "Volvo";
mycars[2] = "BMW";
var mycars = new Array("Saab","Volvo","BMW");
注意:
var empty = [];
var cars=["Saab","Volvo","BMW"];
在 JavaScript 种获取数组某一项的值都是通过数组元素的下标来获取
举例:创建一个数组,然后获取数组中的某个字符
<script type="text/javascript"> //创建数组 var arr=new Array("厦门","福州","漳州","龙岩","泉州"); document.write(arr[4]); script>
定义: length 属性可设置或返回数组中元素的数目
语法:
arrayObject.length
说明:
举例:实现如何使用 length 属性返回并设置数组的长度
<script type="text/javascript"> var arr = new Array(3) arr[0] = "John" arr[1] = "Andy" arr[2] = "Wendy" document.write("Original length: " + arr.length) document.write("
") arr.length=5 document.write("New length: " + arr.length) script>
结果:
Original length: 3
New length: 5
功能: 在数组开头添加元素,并返回该数组
格式:
数组对象.unshift(element1,element2,…,elementn);
注意:
unshift() 方法不创建新的创建,而是直接修改原有的数组
举例:实现在数组的头部添加 f-z.cn 元素代码如下:
<script type="text/javascript"> var arr = new Array() arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "
") document.write(arr.unshift("f-z.cn") + "
") document.write(arr) script>
结果:
George,John,Thomas
4
f-z.cn,George,John,Thomas
功能: 向数组的末尾追加一个或多个元素,并且返回新的长度。
格式:
数组对象.push(element 1,element 2,…,element n)
注意:
push()方法是在数组的末尾添加元素,而不是在中间插入元素。
举例:实现在数组的尾部添加 f-z.cn 元素代码如下:
<script type="text/javascript"> var arr = new Array() arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "
") document.write(arr.push("f-z.cn") + "
") document.write(arr) script>
结果:
George,John,Thomas
4
George,John,Thomas,f-z.cn
功能: 把数组的第一个元素从其中删除,并返回第一个元素的值
格式:
arrayObject.shift()
注意:
1. 如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。
2. 请注意,该方法不创建新数组,而是直接修改原有的 arrayObject
举例:实现删除数组的头元素代码如下:
<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "
") document.write(arr.shift() + "
") document.write(arr) script>
结果:
George,John,Thomas
George
John,Thomas
功能: 删除并返回数组中的最后一个元素
格式:
arrayObject.pop()
注意:
pop() 方法将删除 arrayObject 最后一个元素,把数组长度减 1,并返回删除元素的值。 如果数组已经为空,则 pop() 不改变数组,并返回undefined 值。
举例:实现删除数组的最后一个元素代码如下:
<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "
") document.write(arr.pop() + "
") document.write(arr) script>
结果:
George,John,Thomas
Thomas
George,John
功能: 可从已有的数组中返回选定的元素
格式:
arrayObject.slice(begin,end)
说明:
begin: 必需要的参数。规定从何处开始选取。
end: 规定从何处结束选取。
小技巧:
举例:实现选择数组中前四个元素
<script type="text/javascript"> //创建数组的同时对元素赋值 var arr=new Array("Html","Css","JavaScript","jQuery","bootstrap"); document.write("所选的元素为:"+"
"+arr.slice(0,4)); script>
结果:
所选的元素为:
Html,Css,JavaScript,jQuery
功能: 用于对数组的元素进行排序
语法:
arrayObject.sort(sortby)
返回值: 对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
说明:
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,
说得更精确点,是按照字符编码的顺序进行排序。
要实现这点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,
该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
比较函数应该具有两个参数 a和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
举例: 创建一个数组,并按字母顺序进行排序
<script type="text/javascript"> 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 + "
") document.write(arr.sort()) script>
结果:
George,John,Thomas,James,Adrew,Martin
Adrew,George,James,John,Martin,Thomas
功能: 用于颠倒数组中元素的顺序。
注意: 它不是创建新的数组,而是改变原来的数组。
语法:
arrayObject.reverse()
举例: 创建一个数组,然后颠倒其元素的顺序
<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "
") document.write(arr.reverse()) script>
结果:
George,John,Thomas
Thomas,John,George
功能: 连接两个或多个数组
格式:
arrX.concat(arrX1,arrX2,......,arrXn)
说明:
举例:实现多个数组的链接
<script type="text/javascript"> 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] = "f-z.cn" arr.concat(arr2); //连接两个数组 var arr3=new Array(); //数组与元素连接 arr3=arr.concat(arr2); document.write(arr3.concat(4,5)); script>
结果:
George,John,Thomas,James,Adrew,f-z.cn,4,5
功能: 把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔的
格式:
arr.join("指定的分隔符")
注意:
“指定的分隔符”是可选项,没有指定的话默认是逗号
举例:实现数组元素的连接成字符串
<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] ="fenzhen" document.write(arr.join()+"
") //没有指定分隔符 document.write(arr.join("$")) //有指定分隔符 script>
结果:
George,John,Thomas,James,fenzhen
Georg J o h n John JohnThomas J a m e s James Jamesfenzhen
**功能:**可把一个逻辑值转换为字符串,并返回结果
格式:
arr.toString()
举例:
<script type="text/javascript"> var arr=new Array("html","css","javascript","jQuery","Ajax", "fenzhen"); document.write(arr.toString()); script>
结果:
html,css,javascript,jQuery,Ajax,fenzhen
时区(Time Zone)是地球上的区域使用同一个时间定义。
例:
说明:
时间什么格式不重要,它只是一种习惯写法而已,不是必须要按照某种格式来哦。
时间戳,一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
例子 1:创建一个日期对象:
var objDate=new Date([arguments list]);
说明:
objDate 是我们自定义的日期实例名称,后面是创建一个 Date 对象,Date 后面的括号里放参数。
参数的形式主要有以下 3 种:
例子 2:
new Date("month dd yyyy hh:mm:ss");
说明:
后面的 hh:mm:ss 可选(不选的话就是默认的开始时间),而且前三项的顺序可随意,甚至各字段后面可以加逗号。
例子 3:
new Date(yyyy,mth,dd,hh,mm,ss);
说明:
除了前两个字段(年、月字段)外,其余的都是可选的(不选的话就默认为开始的),不过,此处顺序最好别随意变换。
例子 4:
new Date(ms);
说明:
参数表示的是需要创建的时间和 GMT 时间 1970 年 1 月 1 日之间相差的毫秒数。
总结:各种函数的含义如下
函数 | 含义 |
---|---|
month | 用英文表示月份名称,从 January 到 December |
mth | 用整数表示月份,从 0(1月)到 11(12月) |
dd | 表示一个月中的第几天,从 1 到 31 |
yyyy | 四位数表示的年份 |
hh | 小时数,从 0(午夜)到 23(晚 11 点) |
mm | 分钟数,从 0 到 59 的整数 |
ss | 秒数,从 0 到 59 的整数 |
ms | 毫秒数,为大于等于 0 的整数 |
注意:
类型 | 行为描述 |
---|---|
Array | 将 Array 的每个元素转换为字符串,依次连接,元素之间用英文逗号分隔符拼接。 |
Boolean | 如果布尔值是 true,则返回"true"。否则返回"false"。 |
Date | 返回日期的文本表示。 |
Error | 返回一个包含相关错误信息的字符串。 |
Function | 返回如下格式的字符串,functionname 是函数名称,函数的 toString 方法被调用: “function functionname(){ [native code] }” |
Number | 返回数值的字符串表示。还可返回以指定进制表示的字符串 |
String | 返回 String 对象的值。 |
Object | 返回"[object ObjectName]",其中 ObjectName 是对象类型的名称。 |
例:
<script> //数组 var array = ["CodePlayer", true, 12, -5]; document.writeln( array.toString() ); document.write("
"); //换行 // 日期 var date = new Date(2013, 7, 18, 23, 11, 59, 230); document.writeln( date.toString()); document.write("
"); // 日期 2 var date2 = new Date(1099, 7, 18, 23, 11, 59, 230); document.writeln( date2.toString()); document.write("
"); // 数字 var num = 15.26540; document.writeln( num.toString()); // 布尔 var bool = true; document.writeln( bool.toString() ); document.write("
"); // Object var obj = {name: "张三", age: 18}; document.writeln( obj.toString() ); script>
结果:
CodePlayer,true,12-5
Sun Aug 18 2013 23:11:59 GMT+0800
Fri Aug 18 1099 23:11:59 GMT+0800
15.2654 true
[object Object]
toUTCString() 方法可根据世界时 (UTC) 把 Date 对象转换为字符串,并返回结果。
语法:
dateObject.toUTCString()
说明:
前面是任意的时间对象名,具体看例子。
例: 我们将使用 toUTCString() 来把今天的日期转换为(根据 UTC)字符
串。
<script type="text/javascript"> var d = new Date() document.write (d.toUTCString()) script>
结果:
Wed, 14 Aug 2019 11:15:43 GMT
toLocalString()方法把数组转换为本地字符串。
语法:
arrayObject.toLocaleString()
例:
<script type="text/javascript"> var arr = new Array(3); arr[0] = "George"; arr[1] = "John"; arr[2] = "Thomas"; document.write(arr.toLocaleString()) script>
结果:
George,John,Thomas
注意:
getFullYear() 方法可返回一个表示年份的 4 位数字。
例:
<script type="text/javascript"> var d = new Date(); document.write(d.getFullYear()); script>
结果:
2019
说明:
getMonth() 方法可返回表示月份的数字。
例:返回当前月份
<script type="text/javascript"> var d=new Date(); document.write(d.getMonth()); script>
结果:
8
说明:
getDate() 方法可返回月份的某一天,返回对象所指的月份中的某一天,使用本地时间。返回值是 1 ~ 31 之间的一个整数。
例:返回当前多少号
<script type="text/javascript"> var d = new Date() document.write(d.getDate()) script>
结果:
15
注意:
返回 Date 对象的小时 (0 ~ 23)。
例:
<script type="text/javascript"> var d = new Date(); var n = d.getHours(); document.write(n); script>
结果:
19
依据当地时间返回时间的分钟数
例:
<script type="text/javascript"> var d = new Date(); var n = d.getMinutes(); script>
结果:
55
根据当地时间返回时间的毫秒
例:
<script type="text/javascript"> var d = new Date(); var n = d.getMilliseconds(); script>
结果:
7
getDay() 方法可返回表示星期的某一天的数字。 返回值是 0(周日) 到 6(周六) 之间的一个整数。
例:返回当前星期几的数字表示。
<script type="text/javascript"> var d=new Date(); document.write(d.getDay()); script>
结果:
5
例
<script type="text/javascript"> //创建 Date 对象的一个实例 var today = new Date(); //取出 today 对象中的星期值 var week = today.getDay(); //返回值 0-6,0 代表星期天 //输出中文的星期 switch (week) { case 1: str = "星期一"; break; case 2: str = "星期二"; break; case 3: str = "星期三"; break; case 4: str = "星期四"; break; case 5: str = "星期五"; break; case 6: str = "星期六"; break; default: str = "星期天"; } document.write("今天是:" + str); script>
结果:
今天是:星期五
例
<script type="text/javascript"> 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()]) script>
结果:
今天是:星期五
例
<script type="text/javascript"> var s = '2017-04-18 09:16:15'; s = s.replace(/-/g, "/"); var date = new Date(s); document.write(date); script>
结果:
Tue Apr 18 2017 09:16:15 GMT+0800 (中国标准时间)
说明:
例:
<script type="text/javascript"> function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString().substr(0, 17) } document.write(getLocalTime(1293072805)); script>
结果为:
2010/12/23 上午10:5
例:
<script language="javascript" type="text/javascript"> <!-- //获得当前时间,刻度为一千分一秒 var initializationTime = (new Date()).getTime(); function showLeftTime() { var now = new Date(); var year = now.getFullYear(); var month = now.getMonth(); var day = now.getDate(); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds(); document.all.show.innerHTML = "" + year + "年" + month + "月" + day + "日 " + hours + ":" + minutes + ":" + seconds + ""; //一秒刷新一次显示时间 var timeID = setTimeout(showLeftTime, 1000); } //--> script>
结果为:
2019年8月16日 9:56:20
setFullYear() 方法用于设置年份。
例:
<script type="text/javascript"> var d = new Date(); d.setFullYear(1992); document.write(d); script>
结果为:
Sun Aug 16 1992 10:02:59 GMT+0800 (中国标准时间)
说明:
setMonth() 方法用于设置月份。
例:
<script type="text/javascript"> var d = new Date(); d.setMonth(0); document.write(d); script>
结果为:
Wed Jan 16 2019 10:06:12 GMT+0800 (中国标准时间)
说明:
setDate() 方法用于设置一个月的某一天。
例:
<script type="text/javascript"> var d = new Date(); d.setDate(15); document.write(d); script>
结果为:
Thu Aug 15 2019 10:12:25 GMT+0800 (中国标准时间)
说明:
参数是必须有的,表示一个月中的一天的一个数值(1 ~ 31)。
setHours() 方法用于设置指定的时间的小时字段。
例:
<script type="text/javascript"> var d = new Date(); d.setHours(15); document.write(d); script>
结果:
Fri Aug 16 2019 15:06:49 GMT+0800 (中国标准时间)
说明:
setMinutes() 方法用于设置指定时间的分钟字段,同样用于设置秒数与毫秒数。
例:
<script type="text/javascript"> var d = new Date(); d.setMinutes(17); document.write(d); script>
结果:
Fri Aug 16 2019 14:17:09 GMT+0800 (中国标准时间)
说明:
setSeconds()方法用于设置指定时间的秒的字段
例:
<script type="text/javascript"> var d = new Date(); d.setSeconds(17); document.write(d); script>
结果:
Fri Aug 16 2019 14:46:17 GMT+0800 (CST)
说明:
DOM 是 W3C(万维网联盟)的标准。
DOM 定义了访问 HTML 和 XML 文档的标准:“W3C 文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本动态地访 问和更新文档的内容、结构和样式。”
W3C DOM 标准被分为 3 个不同的部分:
<html>
<head>
<meta charset="utf-8">
<title>DOM 节点title>
head>
<body>
<p>
<a href="#">前端大学a>
p>
<span>
前端大学
span>
body>
html>
解析:
的父节点是
,同 理
的父节点也是
的子节点是
、
,它的父节点是
跟
获取 DOM 中指定元素本章的主要知识点:
在 JavaScript 中,如果想通过 id 来选中元素,可以使用 document 对象的 getElementById()方法。
getElementById()方法类似于 CSS 中的 id 选择器。
语法:
document.getElementById("元素 id");
例子:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>title>
head>
<body>
<div id="fenzhen">前端大学 JavaScript 入门教程div>
<script type="text/javascript"> var e = document.getElementById("fenzhen"); e.style.color = "red"; script>
body>
html>
在 JavaScript 中,如果想通过 name 来选中元素,我们可以使用 document 对象 的 getElementsByName()方法。
语法:
document.getElementsByName("表单元素 name 值");
说明:
注意:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>title>
head>
<body>
<input name="web" id="radio1" type="radio" value="HTML"/>
<input name="web" id="radio2" type="radio" value="CSS"/>
<input name="web" id="radio3" type="radio" value="JavaScript"/>
<input name="web" id="radio4" type="radio" value="jQuery"/>
<script type="text/javascript"> alert(document.getElementsByName("web")[0].value); script>
body>
html>
功能:获取指定节点的父节点
语法:
elementNode.parentNode
注意:父节点只能有一个
举例:实现获取节点的父节点代码如下:
<div id="text">
<p id="con"> parentNode 获取指点节点的父节点p>
div>
<script type="text/javascript"> var mynode= document.getElementById("con"); document.write(mynode.parentNode.nodeName); script>
结果:
parentNode 获取指点节点的父节点
DIV
功能:可返回某个节点之后紧跟的节点(处于同一树层级中)
语法:
nodeObject.nextSibling
说明:
举例: 实现获取兄弟节点的 ID 代码如下:
<body style="background-color:orange">
<p>列表示例:p>
<ul id="myList">
<li id="item1">fenzhenli><li id="item2">waiteli>
ul>
<p id="demo">点击按钮来获得首个项目的下一个同胞的 id。p>
<button onclick="myFunction()">获取button>
<script> function myFunction() { var x=document.getElementById("demo"); x.innerHTML=document.getElementById("item1").nextSibling.id; } script>
body>
结果:
点击前
点击后
注意:
返回某个节如果上面两个标签有空格则会出现“undefined”
功能:可返回某个节点之前紧跟的节点(处于同一树层级中)
语法:
nodeObject.previousSibling
说明:
代码如下:
<body>
<p>列表示例:p>
<ul id="myList">
<li id="item1">fenzhenli>
<li id="item2">waiteli>
ul>
<p id="demo">请点击按钮来获得第二个列表项的前一个同胞的 id。p>
<button onclick="myFunction()">获取button>
<script> function myFunction() { var itm=document.getElementById("item2"); var x=document.getElementById("demo"); x.innerHTML=itm.previousSibling.id; } script>
body>
功能:
访问选定元素节点下的所有子节点的列表,返回的值可以看作是一个数组,
他具有 length 属性
语法:
elementNode.childNodes
注意:
如果选定的节点没有子节点,则该属性返回不包含节点的 NodeList
举例:实现获取的子节点的相关信息代码如下:
<body style="background-color:orange">
<p id="demo">请点击按钮来获得 body 元素子节点的相关信息。p>
<button onclick="myFunction()">获取button>
<script> function myFunction() { var txt=""; var c=document.body.childNodes; for (i=0; i<c.length; i++) { txt=txt + c[i].nodeName + "
"; }; var x=document.getElementById("demo"); x.innerHTML=txt; } script>
body>
注意:
里面必须包含 $(document).ready() 方法。这里介绍 jquery 的 3 个方法
例子:
<head>
[html] view plain copy
<meta charset="UTF-8"/>
<script src="jquery.js">script>
<script> $(document).ready(function(){ $("#btn1").click(function(){ $("#test1").text("Hello world!"); }); $("#btn2").click(function(){ $("#test2").html("Hello world!"); }); $("#btn3").click(function(){ $("#test3").val("Dolly Duck"); }); }); script>
head>
<body>
<p id="test1">这是段落。p>
<p id="test2">这是另一个段落。p>
<p>Input field:
<input type="text" id="test3" value="Mickey Mouse">
p>
<button id="btn1">设置文本button>
<button id="btn2">设置 HTMLbutton>
<button id="btn3">设置值button>
body>
获取属性的值:
getAttribute(属性名) oText.getAttribute('value')
设置属性的值:
setAttribute(属性名,要设置的值) oText.setAttribute('value','hello')
删除:
removeAttribute(属性名) oText.getAttribute('value')
举例:实现获取连接的“target”属性值
请阅读 <a href="www.f-z.cn" target="_blank">前端大学a>,
<p id="demo">请点击按钮来显示上面这个链接的 target 属性值。p>
<button onclick="myFunction()">试一下button>
<script> function myFunction(){ var a=document.getElementsByTagName("a")[0]; document.getElementById("demo").innerHTML= a.getAttribute("target"); } script>
我们可以通过 document.write()来获取元素的 css。
举例:获取 css 的值
<head>
<title>title>
<meta charset="utf-8">
<script type="text/javascript"> function change() { var e = document.getElementById("fenzhen"); document.write("字体的颜色为:"+e.style.color+"
"); document.write("字体的背景颜色为: "+e.style.backgroundColor+"
"); document.write("字体的外边距为:"+e.style.margin+"
"); } script>
head>
<body>
<h1 id="fenzhen" style="color:blue;background-color:gray;margin:20px">绿叶学习网h1>
<input type="button" value="改变样式" onclick="change()"/>
body>
举例:设置字体大小及边框
<script type="text/javascript"> function change() { var e = document.getElementById("fenzhen"); e.style.color = "blue"; e.style.backgroundColor = "gray"; e.style.margin="20px"; } script>
功能: 创建元素节点。此方法可返回一个 Element 对象
语法:
document.createElement(tagName)
注意:
tagName:字符串值,这个字符串用来指明创建元素的类型
举例:实现创建按钮
<script type="text/javascript"> var body = document.body; var input = document.createElement("input"); input.type = "button"; input.value = "这是一个新创建的按钮"; body.appendChild(input); script>
功能: 创建新的文本节点,返回新创建的 Text 节点
语法:
document.createTextNode(data)
提示:
data : 字符串值,可规定此节点的文本
举例:创建文本节点代码如下:
<body>
<p id="demo">单击按钮创建文本节点。p>
<button onclick="myFunction()">点我button>
<script> function myFunction(){ var t=document.createTextNode("Hello World"); document.body.appendChild(t); }; script> body>
使用 innerHTML 来创建节点的 HTML,并且将创建的 HTML 插入到节点中。
举例:实现创建 p 标签跟 span 标签,并且插入到 div 标签中
<body style="background-color:orange">
<div id="qianduan">div>
<script type="text/javascript"> var e = document.getElementById("qianduan"); e.innerHTML=" <span>前端微信公众号</span> <p>JavaScript 入门教程</p>"; script>
body>
结果:
前端微信公众号
JavaScript 入门教程
功能: 从子节点列表中删除某个节点
语法:
nodeObject.removeChild(node)
说明:
举例:实现删除节点代码如下:
<body style="background-color:orange">
<ul id="myList">
<li>Coffeeli>
<li>Teali>
<li>Milkli>
ul>
<p id="demo">点击按钮来删除列表中的首个项目。p>
<button onclick="myFunction()">删除button>
<script> function myFunction() { var list=document.getElementById("myList"); list.removeChild(list.childNodes[0]); } script>
body>
功能: 实现子节点(对象)的替换。返回被替换对象的引用
语法:
node.replaceChild (newnode,oldnew )
说明:
举例:实现替换代码如下:
<p>单击按钮将段落中“Microsoft”替换成“fenzhen”:p>
<p id="demo">Visit Microsoft!p>
<button onclick="myFunction()">替换button>
<script> function myFunction(){ var str=document.getElementById("demo").innerHTML; var n=str.replace("Microsoft","fenzhen"); document.getElementById("demo").innerHTML=n; } script>
举例:实现复制 ul 的所有节点
<head>
<title>title>
<meta name="twitter:" content="" charset="utf-8">
<script type="text/javascript"> function add() { var e = document.getElementById("list"); document.body.appendChild(e.cloneNode(1)); } script>
head>
<body style="background-color:orange">
<ul id="list">
<li>HTMLli>
<li>CSSli>
<li>JavaScriptli>
<li>jQueryli>
<li>ASP.NETli>
ul>
<input type="button" value="添加" onclick="add()" />
body>
或
出现时被自动创建。功能:
语法:
window.frames
和
定义框架是 frames[]数组中的元素。注意:
功能: 是对当前窗口自身的引用。它和 window 属性是等价的。
语法:
window.self
注意:
window、self、window.self 是等价的。
功能: 打开一个新窗口。
语法:
window.open(URL, 窗口名称, 参数);
注意:
举例 1.实现打开一个新窗口, 并且在新窗口加载分针学习网首页代码如下:
window.open("http://www.f-z.cn","","");
举例 2:打开一个指定位置的窗口代码如下:
window.open("http://www.f-z.cn ","","top=200,left=200");
举例 3:打开一个指定大小的窗口代码如下:
window.open("http://www.f-z.cn ","","width=200,height=200");
举例: 实现打开新窗口分针官网首页宽为 500px,高为 400px 代码如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>title>
<meta charset="utf-8">
<script type="text/javascript"> function openWindow() { window.open ("http://www.f-z.cn ", "","width=500,height=400"); } script>
head>
<body>
<input id="btn" type="button" value="打开窗口" onclick="openWindow()"/>
body>
html>
功能:关闭窗口
格式 1:
window.close();
格式 2:
close();
格式 3:
this.close();
窗口名.close();
注意:
举例:实习关闭子窗口。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>title>
<script type="text/javascript"> var newWindow = window.open ("http://www.f-z.cn","","width=500,height=400"); function closeWindow() { newWindow.close(); } script>
<body>
<input type="button" value="关闭窗口" onclick="closeWindow()"/>
body>
html>
效果:
当打开网页的时候会自动打开分针网的官网;
点击关闭窗口可以关闭打开的窗口。
功能:返回窗口的文档显示区的高度。
功能:返回窗口的文档显示区的宽度。
注意:
使用 outwidth 和 outheight 属性获取加上工具条与滚动条窗口的宽度与高度。
语法:
window.innerWidth
window.innerHeight
window.innerWidth=pixels
window.innerHeight=pixels
举例:实现获取文档的宽度和高度
<script> function myFunction(){ var w=window.innerWidth; var h=window.innerHeight; x=document.getElementById("demo"); x.innerHTML="Width: " + w + " Heigth: " + h; } script>
注意:
没有应用于 Location 对象的公开标准,不过所有浏览器都支持该对象。
属性 | 描述 |
---|---|
hash | 返回一个 URL 的锚部分 |
host | 返回一个 URL 的主机名和端口 |
hostname | 返回 URL 的主机名 |
href | 返回完整的 URL |
pathname | 返回的 URL 路径名。 |
port | 返回一个 URL 服务器使用的端口号 |
protocol | 返回一个 URL 协议 |
search | 返回一个 URL 的查询部分 |
功能:
语法:
location.reload(forceGet)
说明:
参数 | 类型 | 描述 |
---|---|---|
forceGet | Boolean | 可选。如果把该方法参数设置为 true,那无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。 |
举例:实现页面的重新加载
<head>
<meta charset="utf-8">
<title>分针网title>
<script> function reloadPage(){ location.reload() } script>
head>
<body>
<input type="text">
<input type="button" value="重新加载页面" onclick="reloadPage()">
body>
对于 HTML5 文档来说,该节点就代表:
第二个子节点是 document.documentElement,表示元素节点(Element), 代表:
<html lang="en">
document 对象的属性:
属性 | 描述 |
---|---|
document.title | 设置文档标题等价于 HTML 的标签 |
document.bgColor | 设置页面背景色 |
document.linkColor | 未点击过的链接颜色 |
document.alinkColor | 激活链接(焦点在此链接上)的颜色 |
document.fgColor | 设置前景色(文本颜色) |
document.vlinkColor | 已点击过的链接颜色 |
document.URL | 设置 URL 属性从而在同一窗口打开另一网页 |
document.fileCreatedDate | 文件建立日期,只读属性 |
document.fileModifiedDate | 文件修改日期,只读属性 |
document.fileSize | 文件大小,只读属性 |
document.cookie | 设置和读出 cookie |
document.charset | 设置字符集 简体中文:gb2312 |
功能:用于在指定的毫秒数后调用函数或计算表达式
语法:
setTimeout(code,millisec)
注意:
举例:实现五秒后出现提示框代码如下:
<head>
<meta charset="utf-8">
<script type="text/javascript"> function timedMsg() { var t=setTimeout("alert('分针:www.f-z.cn')",5000) } script>
head>
<body>
<form>
<input type="button" value="点我,五秒后会出现提示框哦" onClick="timedMsg()">
form>
body>
功能:可取消由 setTimeout() 方法设置的 timeout
语法:
clearTimeout(id_of_settimeout)
注意:
举例:实现开始/暂停计数。 代码如下:
<head>
<meta charset="utf-8">
<script type="text/javascript"> var c=0 var t function timedCount(){ document.getElementById('txt').value=c c=c+1 t=setTimeout("timedCount()",1000) } function stopCount(){ clearTimeout(t) } script>
head>
<body>
<form>
<input type="button" value="开始计数" onClick="timedCount()">
<input type="text" id="txt">
<input type="button" value="暂停计数" onClick="stopCount()"> form>
body>
解析:
此后如果没有点击“暂停计数”则一直计数,点击“暂停计数”后仍然可以再点击“开始计数”继续计数。
功能:
可按照指定的周期(以毫秒计)来调用函数或计算表达式。
语法:
setInterval(code,millisec)
注意:
功能:可取消由 setInterval() 设置的 timeout。
语法:
clearInterval(id_of_setinterval)
注意 :
id_of_setinterval 由 setInterval() 返回的 ID 值。
举例:实现停在获取系统的时间
<head>
<meta charset="utf-8">
<input type="text" id="clock" size="35" />
<script language=javascript> var int=self.setInterval("clock()",50) function clock(){ var t=new Date() document.getElementById("clock").value=t } script>
head>
<body>
<button onclick="int=window.clearInterval(int)"> 暂停button>
body>
解析:
获取了系统的时间,点击暂停后计时会停止
JavaScript 的事件有很多,可大致分为 5 大类。
注意: 事件通常与函数一起使用,当事件发生时执行函数。
鼠标事件有:
属性 | 描述 |
---|---|
onclick | 当用户点击某个对象时调用的事件句柄 |
oncontextmenu | 在用户点击鼠标右键打开上下文菜单是触发 |
ondblick | 当用户双击某个对象时调用事件句柄 |
onmousedown | 鼠标按钮被按下 |
onmouseenter | 当鼠标指针移动到元素上时触发 |
onmouseleave | 鼠标指针移出元素是触发 |
onmousemove | 鼠标被移动 |
onmouseover | 鼠标移到某元素之上 |
onmouseout | 鼠标从某元素移开 |
onmouseup | 鼠标按键被松开 |
举例:为一个 div 添加鼠标点击事件、鼠标按键按下事件、鼠标按键松开事件。 代码如下:
<div class="box" id="box">div>
<script> var box=document.getElementById('box'); box.onmousedown=mousedown; box.onclick=click; box.onmouseup=mouseup; function mousedown(){ this.innerHTML=this.innerHTML+"触发鼠标按下事件
"; } function click(){ this.innerHTML=this.innerHTML+"触发鼠标点击事件
"; } function mouseup(){ this.innerHTML=this.innerHTML+"触发鼠标松开事件
"; } script>
鼠标的移入移出事件分别是 mouseover 和 mouseout。
这两个通常是连在一起使用的,可以通过该事件实现放大镜效果。
举例:通过鼠标移入、移出事件向元素中添加内容。
代码如下:
<div class="box" id="box">div>
<script> var box=document.getElementById('box'); box.onmouseover=mouseover; box.onmouseout=mouseout; function mouseover(){ this.innerHTML=this.innerHTML+"触发鼠标移入事件
"; } function mouseout(){ this.innerHTML=this.innerHTML+"触发鼠标移出事件
"; } script>
JavaScript 中的键盘事件只有三个。
属性 | 描述 |
---|---|
onkeydown | 某个键盘按键被按下 |
onkeypress | 某个键盘按键被按下并松开 |
onkeyup | 某个键盘事件松开 |
这三个键盘事件的执行顺序是: onkeydown → onkeypress → onkeyup。
举例:为一个输入框设定 onkeydown 事件。 代码如下:
<div class="box">
<p>在输入框中按下按键触发p>
<input type="text" id="input" onkeydown="keydown()">
div>
<script> function keydown(){ alert("你在输入框中按下了一个键"); } script>
说明: 在输入框中按下任意键,都会调用函数,函数内执行弹出警告框的代码。
onkeypress 事件只在按下键盘的任一“字符键”(如 A~Z、数字键)时触发,单独按下“功能键”(如 F1~F12、Ctrl 键、Shift 键、Alt 键等)不会触发 。
举例:通过 onkeypress 事件弹出警告框。
<div class="box">
<p>在输入框中按下按键触发p>
<input type="text" id="input" onkeypress="keypress()">
div>
<script> function keypress(){ alert("触发 onkeypress 事件"); } script>
在 JavaScript 中,onkeyup 事件是在键盘的某个键被按下之后松开的一瞬间触 发的事件。
举例:通过 onkeyup 事件改变元素的内容。
<div class="box">
<p>在输入框中输入内容:p>
<input type="text" id="input" onkeyup="keyup()">
<div id="box">div>
div>
<script> var box=document.getElementById('box'); var input=document.getElementById('input'); function keyup(){ box.innerHTML=input.value; } script>
说明:
表单事件有:
属性 | 描述 |
---|---|
onblur | 元素失去焦点是触发 |
onchange | 该事件在表单元素的内容是触发(,,和 ) |
onfocus | 元素获取焦点是触发 |
onfocusin | 元素即将获取焦点是触发 |
onfocusout | 元素即将失去焦点是触发 |
oninput | 元素获取用户输入时触发 |
onresert | 表单重置是触发 |
onsearch | 用户向搜索域输入文本是触发() |
onselect | 用户选取文本时触发(和) |
onsubmit | 表单提交时触发 |
常用表单事件有 onchange 事件, onsubmit 事件, onblur 事件, onfocus 事件。
onchange 事件的触发步骤:
举例:当输入框中的内容改变时,将输入的小写字母转换成大写字母。 代码如下:
<form>输入需要转换的字符串
<input type="text" id="input" onchange="func()">
form>
<p>当输入框失去焦点的时候,函数被触发,小写字母转换成大写字母p>
<script> function func(){ var x=document.getElementById("input"); console.log(x.value); x.value=x.value.toUpperCase(); console.log(x.value); } script>
说明:
如果只是输入内容,并没有按回车键或者离开输入框,onchange 不会触发。
表单中使用。当该事件触发的函数中返回 false 时,表单就不会被提交。
语法:
onsubmit="return 函数名()"
举例:事件触发的函数返回 false,看页面会不会跳转。
<form action="http://www.f-z.cn" onsubmit="return func()">
<input type="text" >
<input type="submit" value="提交">
form>
<script> function func() { alert("触发 onsubmit 事件"); return false; } script>
说明:
如果需要页面跳转的话,只需要将返回值改为 true 就可以了,
当返回值是 false 时,表单不会被提交。
onfocus 事件在对象获得焦点时发生。
onblur 事件刚好相反,在对象失去焦点 时发生。
举例:当输入框获得焦点的时候改变输入框的颜色,当输入框失去焦点的时候验 证内容是否为空,并把输入框的颜色改成白色。
<form>
<input id="input" type="text" onfocus="func(this)" onblur="check(this)">
form>
<script> function func(x) { x.style.backgroundColor ="yellow"; } function check(x){ x.style.backgroundColor ="#fff" if(x.value==""){ alert("内容不能为空"); } } script>
说明:
onblur 经常用于 Javascript 验证代码,一般用于表单输入框。
onfocus 通常用于 ,
, 和
。
元素,在页面完全载入后(包括图片、css 文件等)举例:页面加载完成后弹出警告框。
<body onload="func()">
<script> function func() { alert("页面加载完成"); } script>
body>
说明: 当 body 标签中的内容加载完成后调用函数名为 func 的函数。
定义:
onresize 事件会在窗口或框架被调整大小时发生。
语法:
window.onresize=function(){SomeJavaScriptCode};
参数 | 描述 |
---|---|
SomeJavaScriptCode | 必需。规定该事件发生时执行的 JavaScript。 |
举例: 实现当浏览器被重置大小时执行 Javascript 代码:
<head>
<meta charset="utf-8"> <title>分针网title>
<script> function myFunction(){ var w=window.outerWidth; var h=window.outerHeight; var txt="窗口大小: 宽度=" + w + ", 高度=" + h; document.getElementById("demo").innerHTML=txt; } script>
head>
<body onresize="myFunction()">
<p>尝试调整浏览器的窗口p>
<p id="demo"> p>
<p>注意:该例子在 IE8 或更早版本下可能不工作,IE8 或更早的版本不支持 window 对象的 outerWidth/outerHeight 属性p>
body>
解释:
当按住鼠标该表浏览器窗口大小的时候 js 代码 宽度(w)跟高度(h)会自动改变.
答:
答:
dns 缓存,cdn 缓存,浏览器缓存,服务器缓存。
答:
// 创建 cookie
function setCookie(name, value, expires, path, domain, secure) {
var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
if (expires instanceof Date) {
cookieText += '; expires=' + expires;
}
if (path) {
cookieText += '; expires=' + expires; }
if (domain) {
cookieText += '; domain=' + domain;
}
if (secure) {
cookieText += '; secure'; }
document.cookie = cookieText; }
// 获取 cookie
function getCookie(name) {
var cookieName = encodeURIComponent(name) + '=';
var cookieStart = document.cookie.indexOf(cookieName);
var cookieValue = null;
if (cookieStart > -1) {
var cookieEnd = document.cookie.indexOf(';', cookieStart); if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
}
return cookieValue;
}
// 删除 cookie
function unsetCookie(name) {
document.cookie = name + "= ; expires=" + new Date(0);
}
答:
状态码 | 描述 |
---|---|
100 Continue | 继续,一般在发送 post 请求时,已发送了 http header 之后服务端将返回此信息,表示确认,之后发送具体参数信息 |
200 OK | 正常返回信息 |
201 Created | 请求成功并且服务器创建了新的资源 |
202 Accepted | 服务器已接受请求,但尚未处理 |
301 Moved Permanently | 请求的网页已永久移动到新位置 |
302 Found | 临时性重定向 |
303 See Other | 临时性重定向,且总是使用 GET 请求新的 URI |
304 Not Modified | 自从上次请求后,请求的网页未修改过 |
400 Bad Request | 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求 |
401 Unauthorized | 请求未授权 |
403 Forbidden | 禁止访问 |
404 Not Found | 找不到如何与 URI 相匹配的资源 |
500 Internal Server Error | 最常见的服务器端错误 |
503 Service Unavailable | 服务器端暂时无法处理请求(可能是过载或维护) |
答
网站重构: 在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。也就是说是在不改变 UI 的情况下,对网站进行优化,在扩展的同时保持一致的 UI。
对于传统的网站来说重构通常是:
有两个地方需要注意:
答
Array.prototype.uniq = function () {
// 长度只有 1,直接返回当前的拷贝
if (this.length <= 1) {
return this.slice(0);
}
var aResult = [];
for (var i = 0, l = this.length; i < l; i++) {
if (!_fExist(aResult, this[i])) {
aResult.push(this[i]);
}
}
return aResult;
// 判断是否重复
function _fExist(aTmp, o) {
if (aTmp.length === 0) {
return false;
}
var tmp;
for (var i = 0, l = aTmp.length; i < l; i++) {
tmp = aTmp[i];
if (tmp === o) {
return true;
}
// NaN 需要特殊处理
if (!o && !tmp && tmp !== undefined && o !== undefined && isNaN(tmp) && isNaN(o)) {
return true;
}
}
return false;
}
}
答:
答:
标签的长时间连接(可跨域)答:
答:
Flash:
Ajax:
共同点:
优雅降级:
Web 站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于 IE 独特的盒模型布局问题,针对不 同版本的 IE 的 hack 实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在 旧式浏览器上以某种形式降级体验却不至于完全失效。
渐进增强:
从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器 才支持的功能,向页面增加无害于基础浏览器的额外样式和功能的。当浏览器支持时,它们 会自动地呈现出来并发挥作用。
内存泄漏: 指任何对象在您不再拥有或需要它之后仍然存在。
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。
答:
答:
答:
Ajax 的工作原理:
相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。
并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给 Ajax 引擎自己来做,只有确定需要从服务器读取新数据时再由 Ajax 引擎代为向
服务器提交请求.
优点:
答:
答:
本地对象为 array obj regexp 等可以 new 实例化。
内置对象为 gload Math 等不可以实例化的。
宿主为浏览器自带的 document,window 等。
答:
this 是 js 的一个关键字,随着函数使用场合不同,this 的值会发生变化。
但是有一个总原则,那就是 this 指的是调用函数的那个对象。
this 一般情况下:是全局对象 Global。 作为方法调用,那么 this 就是指这个对象
答:
答:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
它是基于 JavaScript 的一个子集。数据格式简单, 易于读写, 占用带宽小 {‘age’:‘12’, ‘name’:‘back’}
答:
答: