JavaScript杂记

  1. JavaScript可以直接写入 HTML 输出流

JavaScript 能够直接写入 HTML 输出流中:

之间的代码行包含了 JavaScript: 您可以在 HTML 文档中放入不限数量的脚本。 脚本可位于 HTML 的 或 部分中,或者同时存在于两个部分中。 通常的做法是把函数放入 部分中,或者放在页面底部。这样就可以把它们安置到同一处位置,不会干扰页面的内容。 6. 外部的 JavaScript 也可以把脚本保存到外部文件中。外部文件通常包含被多个网页使用的代码。 外部 JavaScript 文件的文件扩展名是 .js。 如需使用外部文件,请在

#这个程序写的不好,因为它没有触法程序,不能体现JS的作用
 使用 document.write() 方法将内容写到 HTML 文档中。
 使用 innerHTML 写入到 HTML 元素。
 使用 console.log() 写入到浏览器的控制台。
console.log() 方法能够让你看到你在页面中的输出内容,让你更容易调试javascript;与alert相比,console不会打断你页面的操作,console里面的内容非常丰富,你可以在控制台输入 console。
您知道吗?
Note 程序中调试是测试,查找及减少bug(错误)的过程。
8. JavaScript 数据类型
JavaScript 有多种数据类型:数字,字符串,数组,对象等等:

var length = 16; // Number 通过数字字面量赋值
var points = x * 10; // Number 通过表达式字面量赋值
var lastName = “Johnson”; // String 通过字符串字面量赋值
var cars = [“Saab”, “Volvo”, “BMW”]; // Array 通过数组字面量赋值
var person = {firstName:“John”, lastName:“Doe”}; // Object 通过对象字面量赋值
9. Value = undefined
在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。

在执行过以下语句后,变量 carname 的值将是 undefined:

var carname;
10. Undefined 和 Null
Undefined 这个值表示变量不含有值。

可以通过将变量的值设置为 null 来清空变量。
11. 声明变量类型
当您声明新变量时,可以使用关键词 “new” 来声明其类型:

var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;

JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。

  1. JavaScript函数
    在JavaScript中,函数即对象,可以随意地被程序操控,函数可以嵌套在其他函数中定义,这样可以访问它们被定义时所处的作用域中的任何变量。
    函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

<1>JavaScript 函数语法
函数就是包裹在花括号中的代码块,前面使用了关键词 function:

function functionname()
{
执行代码
}

当调用该函数时,会执行函数内的代码。

可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。

lamp JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。
提示:function 中的花括号是必需的,即使函数体内只包含一条语句,仍然必须使用花括号将其括起来。

<2>带有返回值的函数
有时,我们会希望函数将值返回调用它的地方。

通过使用 return 语句就可以实现。

在使用 return 语句时,函数会停止执行,并返回指定的值。
<3>在您仅仅希望退出函数时 ,也可使用 return 语句。返回值是可选的:

function myFunction(a,b)
{
if (a>b)
{
return;
}
x=a+b
}
如果 a 大于 b,则上面的代码将退出函数,并不会计算 a 和 b 的总和。

<3>局部 JavaScript 变量
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数能识别出该变量。
只要函数运行完毕,本地变量就会被删除。
局部变量比同名全局变量的优先级高,所以局部变量会隐藏同名的全局变量。


全局 JavaScript 变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。


JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。


向未声明的 JavaScript 变量分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
这条语句:
carname=“Volvo”;
将声明一个全局变量 carname,即使它在函数内执行。
13. JavaScript 作用域
作用域是可访问变量的集合。

在JavaScript中,能够定义全局作用域或者局部作用域。

HTML 中的全局变量
在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。
实例
//此处可使用 window.carName

function myFunction() {
carName = “Volvo”;
}

 你的全局变量,或者函数,可以覆盖 window 对象的变量或者函数。
 局部变量,包括 window 对象可以覆盖全局变量和函数。
#也就是说全局变量可以覆盖全局变量,局部可以在局部作用域里面覆盖全局变量

  1. JavaScript事件
    JavaScript 事件
    事件是可以被 JavaScript 侦测到的行为。

HTML 事件是发生在 HTML 元素上的事情。

当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。
HTML 事件
HTML 事件可以是浏览器行为,也可以是用户行为。
HTML 网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件。
以下是 HTML 事件的实例:
• HTML 页面完成加载
• HTML input 字段改变时
• HTML 按钮被点击
通常,当事件发生时,你可以做些事情。
在事件触发时 JavaScript 可以执行一些代码。
HTML 元素中可以添加事件属性,使用 JavaScript 代码来添加 HTML 元素。
单引号:

双引号:

常见的HTML事件
下面是一些常见的HTML事件的列表:
事件 描述
onchange HTML 元素改变
onclick 用户点击 HTML 元素
onmouseover 用户在一个HTML元素上移动鼠标
onmouseout 用户从一个HTML元素上移开鼠标
onkeydown 用户按下键盘按键
onload 浏览器已完成页面的加载
15. JavaScript 字符串
JavaScript 字符串用于存储和处理文本。

字符串长度
可以使用内置属性 length 来计算字符串的长度:

字符串属性和方法
原始值字符串,如 “John”, 没有属性和方法(因为他们不是对象)。
原始值可以使用 JavaScript 的属性和方法,因为 JavaScript 在执行方法和属性时可以把原始值当作对象。
16. JavaScript 比较和逻辑运算符

运算符 描述 比较 返回值 实例
== 等于 x==8 false 实例 »

	x==5	true	实例 »

=== 绝对等于(值和类型均相等) x===“5” false 实例 »

	x===5	true	实例 »

!= 不等于 x!=8 true 实例 »

!== 不绝对等于(值和类型有一个不相等,或两个都不相等) x!==“5” true 实例 »

	x!==5	false	实例 »

大于 x>8 false 实例 »

< 小于 x<8 true 实例 »

= 大于或等于 x>=8 false 实例 »

<= 小于或等于 x<=8 true

逻辑运算符
逻辑运算符用于测定变量或值之间的逻辑。
给定 x=6 以及 y=3,下表解释了逻辑运算符:
运算符 描述 例子
&& and (x < 10 && y > 1) 为 true
|| or (x5 || y5) 为 false
! not !(x==y) 为 true
提示:JavaScript逻辑运算符的优先级是:!、&& 、||。

条件运算符
JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。
JavaScript 条件运算符也被称为三元运算符,因为它是JavaScript仅有的使用三个操作数的运算符。
#用法与C语言一模一样
17. JavaScript if…else 语句
条件语句用于基于不同的条件来执行不同的动作。

JavaScript if…else 语句
条件语句用于基于不同的条件来执行不同的动作。
语法
if (condition1)
{
当条件 1 为 true 时执行的代码
}
else if (condition2)
{
当条件 2 为 true 时执行的代码
}
else
{
当条件 1 和 条件 2 都不为 true 时执行的代码
}
请使用小写的 if。使用大写字母(IF)会生成 JavaScript 错误!

if…else与三目运算这两者的区别,总结为一句话:三目运算有返回值,if else没有返回值
#另外还有一点与C语言不同的是,每段语句之后不能出现分号,否则会报错
18. JavaScript switch 语句
switch 语句用于基于不同的条件来执行不同的动作。

语法
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default: 用 default 关键词来规定匹配不存在时做的事情
n 与 case 1 和 case 2 不同时执行的代码
}
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。

  1. JavaScript for 循环
    循环可以将代码块执行指定的次数。

For 循环
for 循环是您在希望创建循环时常会用到的工具。
下面是 for 循环的语法:
for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
#可以看出来和C语言,一毛一样
语句 1 (代码块)开始前执行 starts.
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
实例
for (var i=0; i<5; i++)
{
x=x + "The number is " + i + “
”;
}

尝试一下 »
从上面的例子中,您可以看到:
Statement 1 在循环开始之前设置变量 (var i=0)。
Statement 2 定义循环运行的条件(i 必须小于 5)。
Statement 3 在每次代码块已被执行后增加一个值 (i++)。


语句 1
通常我们会使用语句 1 初始化循环中所用的变量 (var i=0)。
语句 1 是可选的,也就是说不使用语句 1 也可以。
您可以在语句 1 中初始化任意(或者多个)值:
实例:
for (var i=0,len=cars.length; i<len; i++)
{
document.write(cars[i] + “
”);
}

尝试一下 »
同时您还可以省略语句 1(比如在循环开始前已经设置了值时):
实例:
var i=2,len=cars.length;
for (; i<len; i++)
{
document.write(cars[i] + “
”);
}

尝试一下 »


语句 2
通常语句 2 用于评估初始变量的条件。
语句 2 同样是可选的。
如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。

如果您省略了语句 2,那么必须在循环内提供 break。否则循环就无法停下来。这样有可能令浏览器崩溃。请在本教程稍后的章节阅读有关 break 的内容。

语句 3
通常语句 3 会增加初始变量的值。
语句 3 也是可选的。
语句 3 有多种用法。增量可以是负数 (i–),或者更大 (i=i+15)。
语句 3 也可以省略(比如当循环内部有相应的代码时):
实例:
var i=0,len=cars.length;
for (; i<len; )
{
document.write(cars[i] + “
”);
i++;
}
For/In 循环
JavaScript for/in 语句循环遍历对象的属性:
实例
var person={fname:“John”,lname:“Doe”,age:25};

for (x in person)
{
txt=txt + person[x];
}
20. JavaScript while 循环
JavaScript while 循环的目的是为了反复执行语句或代码块。

只要指定条件为 true,循环就可以一直执行代码块。
语法
while (条件)
{
需要执行的代码
}
do/while 循环
do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。
语法
do
{
需要执行的代码
}
while (条件);
#说实话,没看出来有啥用。
21. JavaScript Break 和 Continue 语句
break 语句用于跳出循环。

continue 用于跳过循环中的一个迭代。

JavaScript 标签
正如您在 switch 语句那一章中看到的,可以对 JavaScript 语句进行标记。
如需标记 JavaScript 语句,请在语句之前加上冒号:
label:
statements
break 和 continue 语句仅仅是能够跳出代码块的语句。
语法:
break labelname;

continue labelname;
continue 语句(带有或不带标签引用)只能用在循环中。
break 语句(不带标签引用),只能用在循环或 switch 中。
通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:
实例
cars=[“BMW”,“Volvo”,“Saab”,“Ford”];
list:
{
document.write(cars[0] + “
”);
document.write(cars[1] + “
”);
document.write(cars[2] + “
”);
break list;
document.write(cars[3] + “
”);
document.write(cars[4] + “
”);
document.write(cars[5] + “
”);
}
#对于此例子中,如果使用continue而不是break语句那么就会出错,由此可以看出来continue语句它只能在循环中使用
22. JavaScript 类型转换
JavaScript 数据类型
在 JavaScript 中有 5 种不同的数据类型:
• string
• number
• boolean
• object
• function
3 种对象类型:
• Object
• Date
• Array
2 个不包含任何值的数据类型:
• null
• undefined
typeof 操作符
你可以使用 typeof 操作符来查看 JavaScript 变量的数据类型。

实例
typeof “John” // 返回 string
typeof 3.14 // 返回 number
typeof NaN // 返回 number
typeof false // 返回 boolean
typeof [ 1,2,3,4] // 返回 object
typeof {name: ‘John’, age:34} // 返回 object
typeof new Date() // 返回 object
typeof function () {} // 返回 function
typeof myCar // 返回 undefined (if myCar is not declared)
typeof null // 返回 object

尝试一下 »
请注意:

NaN 的数据类型是 number
数组(Array)的数据类型是 object
日期(Date)的数据类型为 object
null 的数据类型是 object
未定义变量的数据类型为 undefined
如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是返回 Object。

constructor 属性
constructor 属性返回所有 JavaScript 变量的构造函数。
实例
“John”.constructor // 返回函数 String() { [native code] }
(3.14).constructor // 返回函数 Number() { [native code] }
false.constructor // 返回函数 Boolean() { [native code] }
[1,2, 3,4].constructor // 返回函数 Array() { [native code] }
{name:‘John’, age:34}.constructor // 返回函数 Object() { [native code] }
new Date().constructor // 返回函数 Date() { [native code] }
function() {}.constructor // 返回函数 Function(){ [native code] }

将数字转换为字符串
全局方法 String() 可以将数字转换为字符串。
该方法可用于任何类型的数字,字母,变量,表达式:
实例
String(x) // 将变量 x 转换为字符串并返回
String(123) // 将数字 123 转换为字符串并返回
String( 100+ 23) // 将数字表达式转换为字符串并返回

Number 方法 toString() 也是有同样的效果。
实例
x.toString()
(123).toString()
(100 + 23).toString()

将日期转换为字符串
全局方法 String() 可以将日期转换为字符串。
String(Date()) // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
Date 方法 toString() 也有相同的效果。
实例
Date().toString() // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

将字符串转换为数字
全局方法 Number() 可以将字符串转换为数字。
字符串包含数字(如 “3.14”) 转换为数字 (如 3.14).
空字符串转换为 0。
其他的字符串会转换为 NaN (不是个数字)。
Number(“3.14”) // 返回 3.14
Number(" “) // 返回 0
Number(”") // 返回 0
Number(“99 88”) // 返回 NaN

将布尔值转换为数字
全局方法 Number() 可将布尔值转换为数字。
Number(false) // 返回 0
Number(true) // 返回 1

将日期转换为数字
全局方法 Number() 可将日期转换为数字。
d = new Date();
Number(d) // 返回 1404568027739
日期方法 getTime() 也有相同的效果。
d = new Date();
d.getTime() // 返回 1404568027739

自动转换为字符串
当你尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法:
document.getElementById(“demo”).innerHTML = myVar;

// if myVar = {name:“Fjohn”} // toString 转换为 “[object Object]”
// if myVar = [1,2,3,4] // toString 转换为 “1,2,3,4”
// if myVar = new Date() // toString 转换为 “Fri Jul 18 2014 09:08:55 GMT+0200”
数字和布尔值也经常相互转换:
// if myVar = 123 // toString 转换为 “123”
// if myVar = true // toString 转换为 “true”
// if myVar = false // toString 转换为 “false”
23. JavaScript 正则表达式

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

搜索模式可用于文本搜索和文本替换。

什么是正则表达式?
正则表达式是由一个字符序列形成的搜索模式。
当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
正则表达式可以是一个简单的字符,或一个更复杂的模式。
正则表达式可用于所有文本搜索和文本替换的操作。

使用字符串方法
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子字符串的起始位置。
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子字符串。

search() 方法使用正则表达式
实例
使用正则表达式搜索 “w3cschool” 字符串,且不区分大小写:
var str = “Visit w3cschool”;
var n = str.search(/w3cschool/i);
输出结果为:
6

尝试一下 »


search() 方法使用字符串
search 方法可使用字符串作为参数。字符串参数会转换为正则表达式:
实例
检索字符串中 “w3cschool” 的子字符串:
var str = “Visit w3cschool!”;
var n = str.search(“w3cschool”);

尝试一下 »


replace() 方法使用正则表达式
实例
使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 w3cschool :
var str = “Visit Microsoft!”;
var res = str.replace(/microsoft/i, “w3cschool”);
结果输出为:
Visit w3cschool!

尝试一下 »

replace() 方法使用字符串
replace() 方法将接收字符串作为参数:
var str = “Visit Microsoft!”;
var res = str.replace(“Microsoft”, “w3cschool”);

正则表达式修饰符
修饰符 可以在全局搜索中不区分大小写:
修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。


正则表达式模式
方括号用于查找某个范围内的字符:
表达式 描述
[abc] 查找方括号之间的任何字符。
[0-9] 查找任何从 0 至 9 的数字。
(x|y) 查找任何以 | 分隔的选项。

元字符是拥有特殊含义的字符:
元字符 描述
\d 查找数字。
\s 查找空白字符。
\b 匹配单词边界。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

量词:
量词 描述
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
24. 使用 RegExp 对象
在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。

使用 test()
test() 方法是一个正则表达式方法。
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
以下实例用于搜索字符串中的字符 “e”:
实例
var patt = /e/;
patt.test(“The best things in life are free!”);
字符串中含有 “e”,所以该实例输出为:
true

尝试一下 »
你可以不用设置正则表达式的变量,以上两行代码可以合并为一行:
/e/.test(“The best things in life are free!”)

使用 compile()
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

使用 exec()
exec() 方法是一个正则表达式方法。
exec() 方法用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
以下实例用于搜索字符串中的字母 “e”:
Example 1
/e/.exec(“The best things in life are free!”);
字符串中含有 “e”,所以该实例输出为:
e
25. JavaScript 错误处理 Throw、Try 和 Catch

JavaScript 抛出(throw)错误
当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息。

描述这种情况的技术术语是:JavaScript 将抛出一个错误。

JavaScript try 和 catch
try 语句允许我们定义在执行时进行错误测试的代码块。

catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

JavaScript 语句 try 和 catch 是成对出现的。

语法
try
{
//在这里运行代码
}
catch(err)
{
//在这里处理错误
}
实例
在下面的例子中,我们故意在 try 块的代码中写了一个错字。
catch 块会捕捉到 try 块中的错误,并执行代码来处理它。
实例

Throw 语句 throw 语句允许我们创建自定义错误。 正确的技术术语是:创建或抛出异常(exception)。 如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。 语法 throw exception 异常可以是 JavaScript 字符串、数字、逻辑值或对象。 实例 本例检测输入变量的值。如果值是错误的,会抛出一个异常(错误)。catch 会捕捉到这个错误,并显示一段自定义的错误消息: 实例

My First JavaScript

Please input a number between 5 and 10:

Test Input

26. JavaScript 调试 JavaScript 调试工具 在程序代码中寻找错误叫做代码调试。 调试很难,但幸运的是,很多浏览器都内置了调试工具。 内置的调试工具可以开始或关闭,严重的错误信息会发送给用户。 有了调试工具,我们就可以设置断点 (代码停止执行的位置), 且可以在代码执行时检测变量。 浏览器启用调试工具一般是按下 F12 键,并在调试菜单中选择 "Console" 。 设置断点 在调试窗口中,你可以设置 JavaScript 代码的断点。 在每个断点上,都会停止执行 JavaScript 代码,以便于我们检查 JavaScript 变量的值。 在检查完毕后,可以重新执行代码(如播放按钮)。 ________________________________________ debugger 关键字 debugger 关键字用于停止执行 JavaScript,并调用调试函数。 这个关键字与在调试工具中设置断点的效果是一样的。 如果没有调试可用,debugger 语句将无法工作。 开启 debugger ,代码在第三行前停止执行。 27. JavaScript 表单验证 JavaScript 表单验证 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。 表单数据经常需要使用 JavaScript 来验证其正确性:  验证表单数据是否为空?  验证输入是否是一个正确的email地址?  验证日期是否输入正确?  验证表单输入内容是否为数字型?

必填(或必选)项目
下面的函数用来检查用户是否已填写表单中的必填(或必选)项目。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题):

W3Cschool教程(w3cschool.cn)姓: E-mail 验证 下面的函数检查输入的数据是否符合电子邮件地址的基本语法。

意思就是说,输入的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的首字符,并且 @ 之后需有至少一个点号:

W3Cschool教程(w3cschool.cn)Email: 28. JavaScript JSON JSON 是用于存储和传输数据的格式。 JSON 通常用于服务端向网页传递数据 。

什么是 JSON?
JSON 英文全称 JavaScript Object Notation
JSON 是一种轻量级的数据交换格式。
JSON是独立的语言 *
JSON 易于理解。

JSON 实例
以下 JSON 语法定义了 employees 对象: 3 条员工记录(对象)的数组:

JSON Example
{“employees”:[
{“firstName”:“John”, “lastName”:“Doe”},
{“firstName”:“Anna”, “lastName”:“Smith”},
{“firstName”:“Peter”, “lastName”:“Jones”}
]}

JSON 格式化后为 JavaScript 对象
JSON 格式在语法上与创建 JavaScript 对象代码是相同的。

由于它们很相似,所以 JavaScript 程序可以很容易的将 JSON 数据转换为 JavaScript 对象。

JSON 语法规则
数据为 键/值 对。
数据由逗号分隔。
大括号保存对象
方括号保存数组

JSON 数据 - 一个名称对应一个值
JSON 数据格式为 键/值 对,就像 JavaScript 对象属性。

键/值对包括字段名称(在双引号中),后面一个冒号,然后是值:
“firstName”:“John”

JSON 对象
JSON 对象保存在大括号内。

就像在 JavaScript 中, 对象可以保存多个 键/值 对:

{“firstName”:“John”, “lastName”:“Doe”}

JSON 数组
JSON 数组保存在中括号内。

就像在 JavaScript 中, 数组可以包含对象:

“employees”:[

{"firstName":"John", "lastName":"Doe"},{"firstName":"Anna", "lastName":"Smith"},{"firstName":"Peter", "lastName":"Jones"}

]

在以上实例中,对象 “employees” 是一个数组。包含了三个对象。

每个为个对象为员工的记录(姓和名)。

JSON 字符串转换为 JavaScript 对象
使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象:
var obj = JSON.parse(text);
29. javascript:void(0) 含义
我们经常会使用到 javascript:void(0) 这样的代码,那么在 JavaScript 中 javascript:void(0) 代表的是什么意思呢?

javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。
30. JavaScript 函数定义
JavaScript 使用关键字 function 定义函数。

函数可以通过声明定义,也可以是一个表达式。

函数是对象
在 JavaScript 中使用 typeof 操作符判断函数类型将返回 “function” 。

但,JavaScript 函数描述为一个对象更加准确。

JavaScript 函数有 属性 和 方法。

arguments.length 属性返回函数调用过程接收到的参数个数:

实例
function myFunction(a, b) {
return arguments.length;
}

尝试一下
toString() 方法将函数的值作为一个字符串返回:

实例
function myFunction(a, b) {
return a * b;
}

var txt = myFunction.toString();

尝试一下 »
函数定义作为对象的属性,称之为对象方法。
函数如果用于创建新的对象,称之为对象的构造函数。
31. JavaScript 函数参数
JavaScript 函数对参数的值(arguments)没有进行任何的检查。

JavaScript 函数参数与大多数其他语言的函数参数的区别在于:它不会关注有多少个参数被传递,不关注传递的参数的数据类型。

Arguments 对象
JavaScript 函数有个内置的对象 arguments 对象.

argument 对象包含了函数调用的参数数组。

通过这种方式你可以很方便的找到最后一个参数的值:

x = findMax(1, 123, 500, 115, 44, 88);

function findMax() {

var i, max = arguments[0];if(arguments.length < 2)return max;for (i = 0; i < arguments.length; i++) {if (arguments[i] > max) {max = arguments[i];}}return max;

}

通过值传递参数
在函数中调用的参数是函数的参数。

如果函数修改参数的值,将不会修改参数的初始值(在函数外定义)。

总结:JavaScript函数传值只是将参数的值传入函数,函数会另外配置内存保存参数值,所以并不会改变原参数的值。

实例

var x = 1;
// 通过值传递参数
function myFunction(x) {
x++; //修改参数x的值,将不会修改在函数外定义的变量 x
console.log(x);
}
myFunction(x); // 2
console.log(x); // 1

通过对象传递参数
在JavaScript中,可以引用对象的值。

因此我们在函数内部修改对象的属性就会修改其初始的值。

修改对象属性可作用于函数外部(全局变量)。

实例

var obj = {x:1};
// 通过对象传递参数
function myFunction(obj) {
obj.x++; //修改参数对象obj.x的值,函数外定义的obj也将会被修改
console.log(obj.x);
}
myFunction(obj); // 2
console.log(obj.x); // 2

  1. JavaScript 函数调用
    函数作为方法调用
    在 JavaScript 中你可以将函数定义为对象的方法。

以下实例创建了一个对象 (myObject), 对象有两个属性 (firstName 和 lastName), 及一个方法 (fullName):
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

实例
var myObject = {
firstName:“John”,
lastName: “Doe”,
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // 返回 “John Doe”

fullName 方法是一个函数。函数属于对象。 myObject 是函数的所有者。

this对象,拥有 JavaScript 代码。

在实例中 this 的值为 myObject 对象。

var myObject = {
firstName:“John”,
lastName: “Doe”,
fullName: function () {
return this;
}
}
myObject.fullName(); // 返回 [object Object] (所有者对象)

使用构造函数调用函数
如果函数调用前使用了 new 关键字, 则是调用了构造函数。

这看起来就像创建了新的函数,但实际上 JavaScript 函数是重新创建的对象:

实例
// 构造函数:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}

// This creates a new object
var x = new myFunction(“John”,“Doe”);
x.firstName; // 返回 “John”

构造函数的调用会创建一个新的对象。新对象会继承构造函数的属性和方法。

构造函数中 this 关键字没有任何的值。
this 的值在函数调用时实例化对象(new object)时创建。

作为函数方法调用函数
在 JavaScript 中, 函数是对象。JavaScript 函数有它的属性和方法。

call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。

实例
function myFunction(a, b) {
return a * b;
}
myFunction.call(myObject, 10, 2); // 返回 20

实例
function myFunction(a, b) {
return a * b;
}
myArray = [10,2];
myFunction.apply(myObject, myArray); // 返回 20
两个方法都使用了对象本身作为第一个参数。 两者的区别在于第二个参数: apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。

在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为 this 的值, 即使该参数不是一个对象。

在 JavaScript 非严格模式(non-strict mode)下, 如果第一个参数的值是 null 或 undefined, 它将使用全局对象替代。

Note 通过 call() 或 apply() 方法你可以设置 this 的值, 且作为已存在对象的新方法调用。
33. JavaScript闭包
关于函数的变量:
有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!

function f1(){
n=999;
}
f1();
alert(n); // 999

JavaScript 闭包
还记得函数自我调用吗?该函数会做什么?

实例
var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();

add();
add();
add();

// 计数器为 3

实例解析
变量 add 指定了函数自我调用的返回字值。

自我调用函数只执行一次。设置计数器为 0。并返回函数表达式。

add变量可以作为一个函数使用。非常棒的部分是它可以访问函数上一层作用域的计数器。

这个叫作 JavaScript 闭包。它使得函数拥有私有变量变成可能。

计数器受匿名函数的作用域保护,只能通过 add 方法修改。

闭包是可访问上一层函数作用域里变量的函数,即便上一层函数已经关闭。
34. HTML DOM
HTML DOM (文档对象模型)
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标准方法。通过 DOM,你可以访问所有的 HTML 元素,连同它们所包含的文本和属性。

查找 HTML 元素
通常,通过 JavaScript,您需要操作 HTML 元素。

为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:

 通过 id 找到 HTML 元素
 通过标签名找到 HTML 元素
 通过类名找到 HTML 元素
通过 id 查找 HTML 元素
在 DOM 中查找 HTML 元素的最简单的方法,是通过使用元素的 id。

本例查找 id=“intro” 元素:

实例
var x=document.getElementById(“intro”);

尝试一下 »
如果找到该元素,则该方法将以对象(在 x 中)的形式返回该元素。

如果未找到该元素,则 x 将包含 null。

通过标签名查找 HTML 元素
本例查找 id=“main” 的元素,然后查找 id=“main” 元素中的所有

元素:

实例
var x=document.getElementById(“main”);
var y=x.getElementsByTagName(“p”);

尝试一下 »

通过类名找到 HTML 元素
本例通过 getElementsByClassName 函数来查找 class=“intro” 的元素:

实例
var x=document.getElementsByClassName(“intro”);
35. HTML DOM 改变 HTML 内容

改变 HTML 内容
修改 HTML 内容的最简单的方法是使用 innerHTML 属性。

如需改变 HTML 元素的内容,请使用这个语法:

document.getElementById(id).innerHTML=new HTML
本例改变了

元素的内容:

实例

Hello World!

本例改变了

元素的内容:

实例

Old Header

实例讲解:

上面的 HTML 文档含有 id=“header” 的

元素
我们使用 HTML DOM 来获得 id=“header” 的元素
JavaScript 更改此元素的内容 (innerHTML)

改变 HTML 属性
如需改变 HTML 元素的属性,请使用这个语法:
document.getElementById(id).attribute=new value
本例改变了 元素的 src 属性:

实例

实例讲解:

上面的 HTML 文档含有 id=“image” 的 元素
我们使用 HTML DOM 来获得 id=“image” 的元素
JavaScript 更改此元素的属性(把 “smiley.gif” 改为 “landscape.jpg”)
36. HTML DOM 改变 CSS
改变 HTML 样式
如需改变 HTML 元素的样式,请使用这个语法:

document.getElementById(id).style.property=new style

下面的例子会改变

元素的样式:

My Heading 1

Click Me! 下面的例子会控制元素的显示和消失:

这是一个文本。 这是一个文本。 这是一个文本。 这是一个文本。 这是一个文本。 这是一个文本。 这是一个文本。

37. HTML DOM 事件 使用 HTML DOM 来分配事件 HTML DOM 允许您使用 JavaScript 来向 HTML 元素分配事件:

实例
向 button 元素分配 onclick 事件:

document.getElementById(“myBtn”).οnclick=function(){displayDate()};
onload 和 onunload 事件
onload 和 onunload 事件会在用户进入或离开页面时被触发。

onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。

onload 和 onunload 事件可用于处理 cookie。

实例

onchange 事件 onchange 事件常结合对输入字段的验证来使用。

下面是一个如何使用 onchange 的例子。当用户改变输入字段的内容时,会调用 upperCase() 函数。

实例

onmouseover 和 onmouseout 事件
onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。

实例
一个简单的 onmouseover-onmouseout 实例:

onmousedown、onmouseup 以及 onclick 事件
onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件,最后,当完成鼠标点击时,会触发 onclick 事件。

实例
一个简单的 onmousedown-onmouseup 实例:

  1. HTML DOM EventListener
    addEventListener() 方法
    实例
    当用户点击按钮时触发监听事件:

document.getElementById(“myBtn”).addEventListener(“click”, displayDate);

 addEventListener() 方法用于向指定元素添加事件句柄。

 addEventListener() 方法添加的事件句柄不会覆盖已存在的事件句柄。

 你可以向一个元素添加多个事件句柄。

 你可以向同个元素添加多个同类型的事件句柄,如:两个 “click” 事件。

 你可以向任何 DOM 对象添加事件监听,不仅仅是 HTML 元素。如: window 对象。

 addEventListener() 方法可以更简单的控制事件(冒泡与捕获)。

 当你使用 addEventListener() 方法时, JavaScript 从 HTML 标记中分离开来,可读性更强, 在没有控制HTML标记时也可以添加事件监听。

 你可以使用 removeEventListener() 方法来移除事件的监听。

语法:
element.addEventListener(event, function, useCapture);

第一个参数是事件的类型 (如 “click” 或 “mousedown”).

第二个参数是事件触发后调用的函数。

第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。

Note 注意:不要使用 “on” 前缀。 例如,使用 “click” ,而不是使用 “onclick”。

同一个元素中添加多个事件句柄
addEventListener() 方法允许向同个元素添加多个事件,且不会覆盖已存在的事件:

实例
element.addEventListener(“click”, myFunction);
element.addEventListener(“click”, mySecondFunction);

#这样将会在点击操作之后,先执行myFunction函数再执行mySecondFunction函数。

你可以向同个元素添加不同类型的事件:

实例
element.addEventListener(“mouseover”, myFunction);
element.addEventListener(“click”, mySecondFunction);
element.addEventListener(“mouseout”, myThirdFunction);

#此处要注意了,鼠标移开和挪入操作每执行一次就会调用一次函数

事件冒泡或事件捕获?
事件传递有两种方式:冒泡与捕获。

事件传递定义了元素事件触发的顺序。 如果你将

元素插入到

元素中,用户点击

元素, 哪个元素的 “click” 事件先被触发呢?

在冒泡中,内部元素的事件会先被触发,然后再触发外部元素,即:

元素的点击事件先触发,然后会触发

元素的点击事件。

在捕获中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即:

元素的点击事件先触发 ,然后再触发

元素的点击事件。

addEventListener() 方法可以指定 “useCapture” 参数来设置传递类型:

addEventListener(event, function, useCapture);

默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。

实例
document.getElementById(“myDiv”).addEventListener(“click”, myFunction, true);

尝试一下 »
提示:DOM事件流同时支持两种事件模型:捕获型事件和冒泡型事件,捕获型事件首先发生。捕获型事件和冒泡型事件会触及DOM中的所有对象,从document对象开始,也在document对象结束。

removeEventListener() 方法
removeEventListener() 方法移除由 addEventListener() 方法添加的事件句柄:

实例
element.removeEventListener(“mousemove”, myFunction);

  1. HTML DOM 元素
    JavaScript HTML DOM 元素(节点)
    创建新的 HTML 元素

在文档对象模型 (DOM) 中,每个节点都是一个对象。DOM 节点有三个重要的属性,分别是:

nodeName : 节点的名称
nodeValue :节点的值
nodeType :节点的类型

创建新的 HTML 元素
如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。

实例

This is a paragraph.

This is another paragraph.

删除已有的 HTML 元素
以下代码将已有的元素删除:

实例

This is a paragraph.

This is another paragraph.

40. JavaScript 对象 JavaScript 中的所有事物都是对象:字符串、数值、数组、函数... 此外,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 对象实例

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

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;
在以上代码执行后,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 属性

  1. JavaScript Number 对象
    JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。
    JavaScript 的 Number 对象由 Number() 构造器创建。
    JavaScript 只有一种数字类型。
    可以使用也可以不使用小数点来书写数字。

八进制和十六进制
如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 “x”,则解释为十六进制数。

实例
var y = 0377;
var z = 0xFF;

lamp 绝不要在数字前面写零,除非您需要进行八进制转换。
默认情况下,JavaScript 数字为十进制显示。

但是你可以使用 toString() 方法 输出16进制、8进制、2进制。

实例
var myNumber=128;
myNumber.toString(16); // returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
无穷大(Infinity)
当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以Infinity表示。同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以-Infinity表示。无穷大值的行为特性和我们所期望的是一致的:基于它们的加、减、乘和除运算结果还是无穷大(当然还保留它们的正负号)。

实例
myNumber=2;
while (myNumber!=Infinity)
{
myNumber=myNumber*myNumber; // Calculate until Infinity
}

尝试一下 »
除以0也产生了无限:

实例
var x = 2/0;
var y = -2/0;
NaN - 非数字值
NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。

你可以使用 isNaN() 全局函数来判断一个值是否是 NaN 值。
var x = 1000 / 0;
isNaN(x); // returns false
42. JavaScript 字符串(String)对象
字符串(String)
字符串(String)使用长度属性length来计算字符串的长度:

实例
var txt=“Hello World!”;
document.write(txt.length);

在字符串中查找字符串
字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置:

实例
var str=“Hello world, welcome to the universe.”;
var n=str.indexOf(“welcome”);

内容匹配
match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。

实例
var str=“Hello world!”;
document.write(str.match(“world”) + “
”);
document.write(str.match(“World”) + “
”);
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 is txt converted to upper
var txt2=txt.toLowerCase(); // txt2 is txt converted to lower

字符串转为数组
字符串使用string>split()函数转为数组:

实例
txt=“a,b,c,d,e” // String
txt.split(","); // Split on commas
txt.split(" “); // Split on spaces
txt.split(”|"); // Split on pipe
#如果分隔符在字符串中不存在的话,那么字符串的整体将会被转化成为数组的第一个元素

  1. 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)

设置日期
通过使用针对日期对象的方法,我们可以很容易地对日期进行操作。

在下面的例子中,我们为日期对象设置了一个特定的日期 (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(“Today is before 14th January 2100”);
}
else
{
alert(“Today is after 14th January 2100”);
}

在页面上显示一个时钟
44. JavaScript Array(数组) 对象 数组对象的作用是:使用单独的变量名来存储一系列的值。

创建一个数组
创建一个数组,有三种方法。

下面的代码定义了一个名为 myCars的数组对象:

1: 常规方式:
var myCars=new Array();
myCars[0]=“Saab”;
myCars[1]=“Volvo”;
myCars[2]=“BMW”;
2: 简洁方式:
var myCars=new Array(“Saab”,“Volvo”,“BMW”);
3: 字面:
var myCars=[“Saab”,“Volvo”,“BMW”];

在一个数组中你可以有不同的对象
所有的JavaScript变量都是对象。数组元素是对象。函数是对象。
因此,你可以在数组中有不同的变量类型。
你可以在一个数组中包含对象元素、函数、数组:

myArray[0]=Date.now;
myArray[1]=myFunction;
myArray[2]=myCars;

数组方法和属性
使用数组对象预定义属性和方法:

var x=myCars.length // the number of elements in myCars
var y=myCars.indexOf(“Volvo”) // the index position of “Volvo”

合并两个数组

var hege = [“Cecilie”, “Lone”];
var stale = [“Emil”, “Tobias”, “Linus”];
var children = hege.concat(stale);

	合并三个数组:

var parents = [“Jani”, “Tove”];
var brothers = [“Stale”, “Kai Jim”, “Borge”];
var children = [“Cecilie”, “Lone”];
var family = parents.concat(brothers, children);

删除数组最后一个元素
向数组的末尾添加一个元素
删除数组中第一个元素
在数组中插入(多个)元素
将数组元素作为字符串进行输出
将数组中的元素进行反转
按照数字的升序进行排列
按照数字的降序进行排序
按照字母顺序进行升序操作
<script>
function myFunction(){
var fruits = ["Banana",'baa', "Orange", "Apple", "Mango",'Baa'];
fruits.sort();
var x=document.getElementById("demo");
x.innerHTML=fruits;
}
</script>
//结果是:Apple,Baa,Banana,Mango,Orange,baa,值得琢磨呦

从数组中获取切片

//返回值是:Orange,Lemon

#注意此处的切片同样的取的前闭后开的区间

在第2的位置插入一个新的元素

#对于这个splice操作,第一个参数是指要删除的那项的下标;第二个参数是指要删除第几项;第三个参数是要插入的内容,这个可以是多项了。

  1. JavaScript Boolean(布尔) 对象
    Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false)。

创建 Boolean 对象
Boolean 对象代表两个值:“true” 或者 “false”

下面的代码定义了一个名为 myBoolean 的布尔对象:

var myBoolean=new Boolean();
如果布尔对象无初始值或者其值为:
0
-0
null
“”
false
undefined
NaN

那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 “false” 时)!
46. JavaScript Math(算数) 对象
Math(算数)对象的作用是:执行常见的算数任务。

Round()函数对小数进行四舍五入操作

Random()函数返回一个范围在0-1的小数

#再对该函数进行简单的加减乘除操作就可以实现生成更大范围内的随机数了

Max()与Min()函数的用法

  1. JavaScript RegExp 对象
    RegExp:是正则表达式(regular expression)的简写。
    RegExp 对象用于规定在文本中检索的内容。

什么是 RegExp?
正则表达式描述了字符的模式对象。

当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。

简单的模式可以是一个单独的字符。
更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。
您可以规定字符串中的检索位置,以及要检索的字符类型,等等。

语法
var patt=new RegExp(pattern,modifiers);
or more simply:
var patt=/pattern/modifiers;
 模式描述了一个表达式模型。
 修饰符描述了检索是否是全局,区分大小写等。

RegExp 修饰符
修饰符用于执行不区分大小写和全文的搜索。

i - 修饰符是用来执行不区分大小写的匹配。
g - 修饰符是用于执行全文的搜索(而不是在找到第一个就停止查找,而是找到所有的匹配)。

实例:

//全文查找和不区分大小写搜索 "is"

test()
The test()方法搜索字符串指定的值,根据结果并返回真或假。

下面的示例是从字符串中搜索字符 “e” :

实例
var patt1=new RegExp(“e”);
document.write(patt1.test(“The best things in life are free”));
由于该字符串中存在字母 “e”,以上代码的输出将是:

	True

exec()
exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

下面的示例是从字符串中搜索字符 “e” :

实例 1
var patt1=new RegExp(“e”);
document.write(patt1.exec(“The best things in life are free”));
由于该字符串中存在字母 “e”,以上代码的输出将是:

	E
//按照道理来说,这个方法应该是非常的有用的,但是由于这里的模型定义的太过硬了,所以没有很好的体现出来它的魔力
  1. JavaScript Window Location
    window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

这种方法既可以用于具有onclick事件的标签,也可以用于满足某些条件进行跳转,特点是方便且灵活。

 location.hostname 返回 web 主机的域名
 location.pathname 返回当前页面的路径和文件名
 location.port 返回 web 主机的端口 (80 或 443)
 location.protocol 返回所使用的 web 协议(http:// 或 https://)
 location.href 属性返回当前页面的 URL。
 location.pathname 属性返回 URL 的路径名。
49. JavaScript Window History
window.history 对象包含浏览器的历史。

window.history对象在编写时可不使用 window 这个前缀。
为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。
一些方法:

history.back() - 与在浏览器点击后退按钮相同
history.forward() - 与在浏览器中点击向前按钮向前相同

实例:
在页面上创建后退按钮:

  1. JavaScript Window Navigator
    window.navigator 对象包含有关访问者浏览器的信息。

实例:

51. JavaScript 弹窗 可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。 换行 弹窗使用 反斜杠 + "n"(\n) 来设置换行。

警告框
警告框经常用于确保用户可以得到某些信息。

当警告框出现后,用户需要点击确定按钮才能继续进行操作。

语法
window.alert(“sometext”);
window.alert() 方法可以不带上window对象,直接使用alert()方法。

实例

确认框
确认框通常用于验证是否接受用户操作。
当确认卡弹出时,用户可以点击 “确认” 或者 “取消” 来确定用户操作。
当你点击 “确认”, 确认框返回 true, 如果点击 “取消”, 确认框返回 false。

点我

提示框
提示框经常用于提示用户在进入页面前输入某个值。
当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。
如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。

实例:
点我

52. JavaScript计数事件 JavaScript 一个设定的时间间隔之后来执行代码,我们称之为计时事件 通过使用 JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。

在 JavaScritp 中使用计时事件是很容易的,两个关键方法是:

setInterval() - 间隔指定的毫秒数不停地执行指定的代码。
setTimeout() - 暂停指定的毫秒数后执行指定的代码
Note: setInterval() 和 setTimeout() 是 HTML DOM Window对象的两个方法。

setInterval() 方法
setInterval() 间隔指定的毫秒数不停地执行指定的代码

语法:
window.setInterval(“javascript function”,milliseconds);
window.setInterval() 方法可以不使用window前缀,直接使用函数setInterval()。

setInterval() 第一个参数是函数(function)。
第二个参数间隔的毫秒数
注意: 1000 毫秒是一秒。

实例
显示当前时间

var myVar=setInterval(function(){myTimer()},1000);

function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById(“demo”).innerHTML=t;
}

clearInterval() 方法用于停止 setInterval() 方法执行的函数代码。
停止时钟

setTimeout() 方法
语法
window.setTimeout(“javascript 函数”,毫秒数);
setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。

setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 “alert(‘5 seconds!’)”,或者对函数的调用,诸如"alertMsg()"。
第二个参数指示从当前起多少毫秒后执行第一个参数。
提示:1000 毫秒等于一秒。

实例
等待3秒,然后弹出 “Hello”:
setTimeout(function(){alert(“Hello”)},3000);

clearTimeout() 方法用于停止执行setTimeout()方法的函数代码。

语法
window.clearTimeout(timeoutVariable)
window.clearTimeout() 方法可以不使用window 前缀。

要使用clearTimeout() 方法, 你必须在创建超时方法中(setTimeout)使用全局变量:

myVar=setTimeout(“javascript function”,milliseconds);
如果函数还未被执行,你可以使用 clearTimeout() 方法来停止执行函数代码。

实例
以下是同一个实例, 但是添加了 “Stop the alert” 按钮:

var myVar;
function myFunction()
{
myVar=setTimeout(function(){alert(“Hello”)},3000);
}
function myStopFunction()
{
clearTimeout(myVar);
}

  1. JavaScript Cookies
    Cookies 用于存储 web 页面的用户信息。
    由于 JavaScript 是运行在客户端的脚本,所以可以使用JavaScript来设置运行在客户端的Cookies。

什么是 Cookies?
Cookies 是一些数据, 存储于你电脑上的文本文件中。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。
Cookies 的作用就是用于解决 “如何记录客户端的用户信息”:
当用户访问 web 页面时,他的名字可以记录在 cookie 中。
在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。
Cookies 以名/值对形式存储,如下所示:

username=John Doe
当浏览器从服务器上请求 web 页面时, 属于该页面的 cookies 会被添加到该请求中。服务端通过这种方式来获取用户的信息。

使用 JavaScript 创建Cookie
JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookies。

JavaScript 中,创建 cookie 如下所示:
document.cookie=“username=John Doe”;

您还可以为 cookie 添加一个过期时间(以 UTC 或 GMT 时间)。默认情况下,cookie 在浏览器关闭时删除:
document.cookie=“username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT”;

您可以使用 path 参数告诉浏览器 cookie 的路径。默认情况下,cookie 属于当前页面。
document.cookie=“username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/”;

使用 JavaScript 读取 Cookie
在 JavaScript 中, 可以使用以下代码来读取 cookies:

	var x = document.cookie;

使用 JavaScript 修改 Cookie
在 JavaScript 中,修改 cookies 类似于创建 cookies,如下所示:
document.cookie=“username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/”;
旧的 cookie 将被覆盖。

使用 JavaScript 删除 Cookie
删除 cookie 非常简单。您只需要设置 expires 参数为以前的时间即可,如下所示,设置为 Thu, 01 Jan 1970 00:00:00 GMT:
document.cookie = “username=; expires=Thu, 01 Jan 1970 00:00:00 GMT”;
注意,当您删除时不必指定 cookie 的值。

Cookie 字符串
document.cookie 属性看起来像一个普通的文本字符串,其实它不是。
即使您在 document.cookie 中写入一个完整的 cookie 字符串, 当您重新读取该 cookie 信息时,cookie 信息是以名/值对的形式展示的。
如果您设置了新的 cookie,旧的 cookie 不会被覆盖。 新 cookie 将添加到 document.cookie 中,所以如果您重新读取document.cookie,您将获得如下所示的数据:
cookie1=value; cookie2=value;
显示所有 Cookie 创建 Cookie 1 创建 Cookie 2 删除 Cookie 1 删除 Cookie 2
如果您需要查找一个指定 cookie 值,您必须创建一个JavaScript 函数在 cookie 字符串中查找 cookie 值。

JavaScript Cookie 实例
在以下实例中,我们将创建 cookie 来存储访问者名称。
首先,访问者访问 web 页面, 他将被要求填写自己的名字。该名字会存储在 cookie 中。
访问者下一次访问页面时,他会看到一个欢迎的消息。
在这个实例中我们会创建 3 个 JavaScript 函数:
 设置 cookie 值的函数
 获取 cookie 值的函数
 检测 cookie 值的函数

设置 cookie 值的函数
首先,我们创建一个函数用于存储访问者的名字:
function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays2460601000));
var expires = “expires=”+d.toGMTString();
document.cookie = cname + “=” + cvalue + "; " + expires;
}

获取 cookie 值的函数
然后,我们创建一个函数用户返回指定 cookie 的值:
function getCookie(cname)
{
var name = cname + “=”;
var ca = document.cookie.split(’;’);
for(var i=0; i<ca.length; i++)
{
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return “”;
}
函数解析:
cookie 名的参数为 cname。
创建一个文本变量用于检索指定 cookie :cname + “=”。
使用分号来分割 document.cookie 字符串,并将分割后的字符串数组赋值给 ca (ca = document.cookie.split(’;’))。
循环 ca 数组 (i=0;i<ca.length;i++),然后读取数组中的每个值,并去除前后空格 (c=ca[i].trim())。
如果找到 cookie(c.indexOf(name) == 0),返回 cookie 的值 (c.substring(name.length,c.length)。
如果没有找到 cookie, 返回 “”。

检测 cookie 值的函数
最后,我们可以创建一个检测 cookie 是否创建的函数。

如果设置了 cookie,将显示一个问候信息。

如果没有设置 cookie,将会显示一个弹窗用于询问访问者的名字,并调用 setCookie 函数将访问者的名字存储 365 天:

function checkCookie()
{
var username=getCookie(“username”);
if (username!="")
{
alert(“Welcome again " + username);
}
else
{
username = prompt(“Please enter your name:”,”");
if (username!="" && username!=null)
{
setCookie(“username”,username,365);
}
}
}

完整实例:
实例
function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays2460601000));
var expires = “expires=”+d.toGMTString();
document.cookie = cname + “=” + cvalue + "; " + expires;
}

function getCookie(cname)
{
var name = cname + “=”;
var ca = document.cookie.split(’;’);
for(var i=0; i<ca.length; i++)
{
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return “”;
}

function checkCookie()
{
var user=getCookie(“username”);
if (user!="")
{
alert(“Welcome again " + user);
}
else
{
user = prompt(“Please enter your name:”,”");
if (user!="" && user!=null)
{
setCookie(“username”,user,365);
}
}
}
54. JavaScript 库
JavaScript 高级程序设计(特别是对浏览器差异的复杂处理),通常很困难也很耗时。
为了应对这些调整,许多的 JavaScript (helper) 库应运而生。
这些 JavaScript 库常被称为 JavaScript 框架。
在本教程中,我们将了解到一些广受欢迎的 JavaScript 框架:
 jQuery
 Prototype
 MooTools
所有这些框架都提供针对常见 JavaScript 任务的函数,包括动画、DOM 操作以及 Ajax 处理。
在本教程中,您将学习到如何开始使用它们,来使得 JavaScript 编程更容易、更安全且更有乐趣。
jQuery
jQuery 是目前最受欢迎的 JavaScript 框架。
它使用 CSS 选择器来访问和操作网页上的 HTML 元素(DOM 对象)。
jQuery 同时提供 companion UI(用户界面)和插件。
许多大公司在网站上使用 jQuery:
Google
Microsoft
IBM
Netflix
如需更深入地学习 jQuery,请访问我们的 jQuery 教程。

Prototype
Prototype 是一种库,提供用于执行常见 web 任务的简单 API。
API 是应用程序编程接口(Application Programming Interface)的缩写。它是包含属性和方法的库,用于操作 HTML DOM。
Prototype 通过提供类和继承,实现了对 JavaScript 的增强。
提示:Prototype 框架最大的部分就是对DOM的扩展。通过Prototype框架里的$()函数能够返回一个网页DOM元素,框架给这个元素添加了很多方便的方法。

MooTools
MooTools 也是一个框架,提供了可使常见的 JavaScript 编程更为简单的 API。
MooTools 也含有一些轻量级的效果和动画函数。
提示:虽然Mootools跟Prototype几乎拥有一样的语法,但是它提供了比Prototype多的功能,而且更强大,拥有实用而清晰的文档和示例帮助你轻松入门。

使用框架
在您决定为网页使用 JavaScript 框架之前,首先对框架进行测试是明智的。
JavaScript 框架很容易进行测试。您无需在计算机上安装它们,同时也没有安装程序。
通常您只需从网页中引用一个库文件。
55. JavaScript 测试 jQuery
引用 jQuery
如需测试 JavaScript 库,您需要在网页中引用它。
为了引用某个库,请使用

  1. JavaScript实例

生成随机连接:#醉了。。

带有换行的警告框

点击按钮在弹窗中使用换行。

点我

循环输出HTML标题

Click the button to loop from 1 to 6, to make HTML headings.

Try it

使用For In声明来便利数组内的元素

点击下面的按钮,循环遍历对象 "person" 的属性。

点击这里

Try * * * catch * * 语句

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 视频教程-带你轻松入门MATLAB-Matlab

    带你轻松入门MATLAB图像和算法等领域有多年研究和项目经验;指导发表科技核心期刊经验丰富;多次指导数学建模爱好者参赛。刘昱显12.00立即订阅订阅后:请点击此处观看视频课程 视频教程-带你轻松入门MATLAB-Matlab学习有效期:永久观看学习时长:375分钟学习计划:7天难度:低…...

    2024/3/15 18:24:29
  2. 推荐几本 Javascript 书籍

    这里推荐几本 Javascript 书籍:初级读物: 《JavaScript高级程序设计》:一本非常完整的经典入门书籍,被誉为JavaScript圣经之一,详解的非常详细,最新版第三版已经发布了,建议购买。《JavaScript王者归来》百度的一个Web开发项目经理写的,作为初学者准备的入门级教程也不…...

    2024/3/15 18:24:27
  3. 高等数学Mathematica实验题——1.2-30.三角波函数的函数解析式求解及图形绘制 (Triangular wave function)

    “对于函数y=f(x),如果存在一个不为零的常数T,使得当x取定义域内的每一个值时,f(x+T)=f(x)都成立,那么就把函数y=f(x)叫做周期函数,不为零的常数T叫做这个函数的周期。事实上,任何一个常数kT(k∈Z,且k≠0)都是它的周期。并且周期函数f(x)的周期T是与x无关的…...

    2024/3/15 18:24:25
  4. 2018年新版PHP基础+进阶+高级+项目实战详细讲解全套

    完整体系教程,基础班、大牛班、高级课程从零基础到精通,课件代码资料齐全DAY0101.WEB开发介绍02.html的介绍03.body属性和文本标记04.排版标记05.实体和列表06.图片和热点07.滚动标记08.多媒体标记DAY0201.回顾02.超链接03.锚点链接04.meta标记05.表单106.表单207.表格08.很细…...

    2024/3/15 18:24:24
  5. 视频教程-入门matlab数理统计和数据分析及优化求解-Matlab

    入门matlab数理统计和数据分析及优化求解图像和算法等领域有多年研究和项目经验;指导发表科技核心期刊经验丰富;多次指导数学建模爱好者参赛。刘昱显12.00立即订阅订阅后:请点击此处观看视频课程 视频教程-入门matlab数理统计和数据分析及优化求解-Matlab学习有效期:永久观…...

    2024/3/15 18:24:25
  6. 深入理解javascript原型和闭包

    原文链接:http://www.cnblogs.com/wangfupeng1988/p/3977924.html深入理解javascript原型和闭包(1)——一切都是对象“一切都是对象”这句话的重点在于如何去理解“对象”这个概念。 ——当然,也不是所有的都是对象,值类型就不是对象。首先咱们还是先看看javascript中一个…...

    2024/3/15 18:24:22
  7. 【原创】开源Math.NET基础数学类库使用(08)C#进行数值积分

    本博客所有文章分类的总目录:【总目录】本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:【目录】开源Math.NET基础数学类库使用总目录 前言在数值计算的需求中,数值积分也是比较常见的一个。我们也知道像Matlab,Mathematics等软件的积分求解功能非常高大上…...

    2024/3/15 18:24:21
  8. 大学本科数学专业课程

    专业基础类课程: 解析几何 (大一上学期) 数学分析I (大一上学期) 数学分析II (大一下学期) 数学分析III(大二上学期) 高等代数I (大一上学期) 高等代数II(大一下学期) 常微分方程(大二上学期) 抽象代数(大二下学期) 概率论基础(大二下学期) 复变函数 (大二…...

    2024/3/15 18:24:20
  9. JavaScript和JQuery好书推荐

    JavaScript和JQuery好书推荐其实无论你是php/python/java还是c/c++,只会自己那点知识是无法独立完成一个站点的建设的!如果你因自己能力不足拒绝过几次亲友的建站请求,或者因合作中不了解前端是什么东西而失去过几次创业机会,那么,请给自己点时间,静下心来,看看这几本书…...

    2024/3/15 18:24:19
  10. 《MATLAB神经网络超级学习手册》——2.2 MATLAB中的数组

    本节书摘来自异步社区《MATLAB神经网络超级学习手册》一书中的第2章,第2.2节,作者:MATLAB技术联盟 , 刘冰 , 郭海霞著,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.2 MATLAB中的数组 MATLAB神经网络超级学习手册MATLAB中数组可以说无处不在,任何变量在MATLAB中…...

    2024/3/25 21:45:31
  11. LU分解

    在高等工程数学一书中, LU分解(LU Decomposition)是矩阵分解中最普通的一种,也是最经典的一种,它可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积,有时是它们和一个置换矩阵的乘积。LU分解主要应用在其数值分析中,用来解线性方程、求反矩阵或计算行列式等。…...

    2024/3/13 4:32:31
  12. 如何正确学习JavaScript?

    既然你找到这篇文章来,说明你是真心想学好JavaScript的。你没有想错,当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript。而面对泛滥的JavaScript在线学习资源,却是很难找到一份高效而实用的方法去学习这个“web时代的语言”。有一点需要注意,几年前…...

    2024/3/17 4:11:27
  13. 高等数学:第一章 函数与极限(1)函数 数列极限 函数极限

    1.0 序 论 一、极限思想的起源以及它的大意 极限是高等数学中一个起着基础作用的重要概念,整个高等数学的体系都建立在这一概念基础之上。 【例1】中国古代有句古语:一尺之槌,日截其半,永世不竭。 设原槌之长为一个单位长,用 表示第 n 次截取之后所剩下的长度,则。 显…...

    2024/3/13 17:38:53
  14. 如何在Ubuntu中安装最新版Eclipse

    想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本。到目前为止,Eclipse 的官方最新版本为 Eclipse Kepler (4.3.2),我们可以使用如下步骤在 Ubuntu 14.04 或其它 Ubuntu 版…...

    2024/3/28 2:49:35
  15. 基于Matlab多项式曲线拟合的新型冠状病毒(2019-nCov)感染人数趋势的预测

    声明(1)预测基于官方公布数据,结果仅供参考,之后的数据,还是以官方为准;(2)本文不作任何建议,更无意制造恐慌、造谣,仅表示一个简单的数据分析结果;(3)目前,新型肺炎处于上升趋势,增长速度较快。随着后续管控防治手段的提升和药物的研制,病情发展曲线完全可能大…...

    2024/3/13 17:38:53
  16. 最优化问题综述

    1 优化问题分类 优化问题一般可分为两大类:无约束优化问题和约束优化问题,约束优化问题又可分为含等式约束优化问题和含不等式约束优化问题。无约束优化问题 含等式约束的优化问题 含不等式约束的优化问题2 求解策略 针对以上三种情形,各有不同的处理策略:无约束的优化问题…...

    2024/3/20 22:51:43
  17. [044] 微信公众平台开发教程第20篇-新手解惑40则

    笔者在CSDN博客频道推出微信公众平台开发教程之后,接触了许多公众平台开发爱好者,也帮助他们解决了许多实际的问题,当然这其中有很多问题都是重复的,因此,笔者将这些问题及解答整理出来,以帮助更多初学者少走弯路。1、订阅号与服务号的主要区别是什么?订阅号每天能群发一…...

    2024/3/13 17:38:50
  18. php 只提取文字,去除html标签样式和转义字符

    只提取文字,去除html标签样式和转义字符。主要用于提取富文本编辑的内容。//把HTML实体标签转换为字符 $html_string = htmlspecialchars_decode($content); //将空格替换成空 $content = str_replace(" ", "", $html_string); //函数剥去字符串中的 HTML…...

    2024/3/15 18:24:18
  19. JavaScript框架比较

    JavaScript框架比较 摘要:现代网站和web应用程序趋向于依赖客户端的大量的javascript来提供丰富的交互。特别是通过不刷新页面的异步请求来返回数据或从服务器端的脚本(或数据系统)中得到响应。在这篇文章中,你将会了解到javascript框架如何更快、更方便的创建互动性强、响…...

    2024/3/20 14:30:54
  20. 高等数学:第二章 导数与微分(3)函数微分 近似计算

    2.7 函数的微分 一、由一个例子引入微分概念 【引例】一块正方形金属薄片受温度变化影响,其边长由变到,试给出: 1、此薄片的面积的改变值。 2、用计算机摸拟边长改变量与面积改变量的对应关系 正方形的面积计算公式 ,是边长。 当由变化到时,正方形面积的增量为这就是薄片…...

    2024/3/15 18:24:17

最新文章

  1. 图片标注编辑平台搭建系列教程(3)——画布拖拽、缩放实现

    简介 标注平台很关键的一点&#xff0c;对于整个图片为底图的画布&#xff0c;需要支持缩放、拖拽&#xff0c;并且无论画布位置在哪里&#xff0c;大小如何&#xff0c;所有绘制的点、线、面的坐标都是相对于图片左上角的&#xff0c;并且&#xff0c;拖拽、缩放&#xff0c;…...

    2024/3/29 0:15:16
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. js相关的dom方法

    查找元素 //获取元素id为box的元素 document.getElementById(box) //获取元素类名为box的元素 document.getElementsByClassName(box) //获取标签名为div的元素 document.getElementsByTagName(div)改变元素 //设置id为box的元素内容 document.getElementById("box"…...

    2024/3/27 11:28:02
  4. 网络工程师笔记15(OSPF协议-2)

    OSPF协议 OSPF是典型的链路状态路由协议&#xff0c;是目前业内使用非常广泛的 IGP 协议之一。 Router-ID(Router ldentifier&#xff0c;路由器标识符)&#xff0c;用于在一个 OSPF 域中唯一地标识一台路由器。Router-ID 的设定可以通过手工配置的方式&#xff0c;或使用系统自…...

    2024/3/28 0:43:37
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/3/27 10:21:24
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/3/24 20:11:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/3/18 12:12:47
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/3/24 20:11:23
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/3/26 20:58:42
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/3/28 17:01:12
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/3/24 5:55:47
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/3/27 10:28:22
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/3/26 23:04:51
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/3/26 11:20:25
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/3/24 20:11:18
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/3/28 9:10:53
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/3/24 20:11:16
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/3/24 20:11:15
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/3/27 7:12:50
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/3/24 20:11:13
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/3/26 11:21:23
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/3/28 18:26:34
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/3/28 12:42:28
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/3/28 20:09:10
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57