关闭

javaScript技术整理

229人阅读 评论(0) 收藏 举报

1、match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

2、isNaN() 函数用于检查其参数是否是非数字值。

    返回值:如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。

3、console.log() 方法在浏览器中显示 JavaScript 值。浏览器中使用 F12 来启用调试模式, 在调试窗口中点击 "Console" 菜单。

4、以下是 JavaScript 中最​​重要的保留字(按字母顺序):

abstract else instanceof super
boolean enum int switch
break export interface synchronized
byte extends let this
case false long throw
catch final native throws
char finally new transient
class float null true
const for package try
continue function private typeof
debugger goto protected var
default if public void
delete implements return volatile
do import short while
double in static with
5、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 通过对象字面量赋值

6、javaScript语句标识符

语句标识符是保留关键字不能作为变量名使用。

下表列出了 JavaScript 语句标识符 (关键字) :

break                           用于跳出循环。

catch         语句块,在 try 语句块执行出错时执行 catch 语句块。continue跳过循环中的一个迭代。

do ... while  执行一个语句块,在条件语句为 true 时继续执行该语句块。

for           在条件语句为 true 时,可以将代码块执行指定的次数。

for ... in    用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。

function      定义一个函数

if ... else   用于基于不同的条件来执行不同的动作。 

return        退出函数

switch        用于基于不同的条件来执行不同的动作。

throw         抛出(生成)错误 。

try           实现错误处理,与 catch 一同使用。

var           声明一个变量。

while         当条件语句为 true 时,执行语句块。

7、在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可;

    未使用值来声明的变量,其值实际上是 undefined。

    如果重新声明 JavaScript 变量,该变量的值不会丢失;

8、字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined)。

9、JavaScript创建数组

 (1)var cars=new Array();
     cars[0]="Saab";
     cars[1]="Volvo";
     cars[2]="BMW";

(2)var cars=new Array("Saab","Volvo","BMW");

(3)var cars=["Saab","Volvo","BMW"];

   注:数组下标是基于零的,所以第一个项目是 [0],第二个是 [1],以此类推。

10、JavaScript创建对象

      对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔;

     var person={firstname:"John", lastname:"Doe", id:5566};

   对象属性有两种寻址方式:

   name=person.lastname;
   name=person["lastname"];

11、Undefined 这个值表示变量不含有值。可以通过将变量的值设置为 null 来清空变量。

12、当您声明新变量时,可以使用关键词 "new" 来声明其类型;

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

13、带有返回值的函数,在使用 return 语句时,函数会停止执行,并返回指定的值。 

注意: 整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。

在您仅仅希望退出函数时 ,也可使用 return 语句。返回值是可选的。

14、JavaScript局部变量:

在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。

您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。

只要函数运行完毕,本地变量就会被删除。

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

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

    向未声明的 JavaScript 变量分配值:如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。

15、JavaScript作用域:对象和函数同样也是变量,作用域为可访问变量,对象,函数的集合。变量在函数内声明,变量为局部作用域。局部变量:只能在函数内部访问。

因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。

变量在函数外定义,即为全局变量。全局变量有全局作用域: 网页中所有脚本和函数均可使用。

注:如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

JavaScript 变量生命周期在它声明时初始化。局部变量在函数执行完毕后销毁。全局变量在页面关闭后销毁。

函数参数只在函数内起作用,是局部变量。在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。

16、JavaScript事件:

onchange HTML 元素改变
onclick 用户点击 HTML 元素
onmouseover 用户在一个HTML元素上移动鼠标
onmouseout 用户从一个HTML元素上移开鼠标
onkeydown 用户按下键盘按键
onload 浏览器已完成页面的加载
17、JavaScript字符串:可以使用索引位置来访问字符串中的每个字符:

字符串的索引从 0 开始,这意味着第一个字符索引值为 [0],第二个为 [1], 以此类推。

你可以在字符串中使用引号,字符串中的引号不要与字符串的引号相同;

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

反斜杠是一个转义字符。 转义字符将特殊字符转换为字符串字符:

转义字符 (\) 可以用于转义撇号,换行,引号,等其他特殊字符。

下表中列举了在字符串中可以使用转义字符转义的特殊字符:

代码 输出
\' 单引号
\" 双引号
\\ 反斜杠
\n 换行
\r 回车
\t tab(制表符)
\b 退格符
\f 换页符

 JavaScript 字符串是原始值,可以使用字符创建: var firstName = "John"

但我们也可以使用 new 关键字将字符串定义为一个对象: var firstName = new String("John");

注:不要创建 String 对象。它会拖慢执行速度,并可能产生其他副作用;

=== 为绝对相等,即数据类型与值都必须相等。

18、字符串属性:

属性 描述
constructor 返回创建字符串属性的函数
length 返回字符串的长度
prototype 允许您向对象添加属性和方法
字符串方法:

Method 描述
charAt() 返回指定索引位置的字符
charCodeAt() 返回指定索引位置字符的 Unicode 值
concat() 连接两个或多个字符串,返回连接后的字符串
fromCharCode() 将 Unicode 转换为字符串
indexOf() 返回字符串中检索指定字符第一次出现的位置
lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置
localeCompare() 用本地特定的顺序来比较两个字符串
match() 找到一个或多个正则表达式的匹配
replace() 替换与正则表达式匹配的子串
search() 检索与正则表达式相匹配的值
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分
split() 把字符串分割为子字符串数组
substr() 从起始索引号提取字符串中指定数目的字符
substring() 提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase() 把字符串转换为小写
toString() 返回字符串对象值
toUpperCase() 把字符串转换为大写
trim() 移除字符串首尾空白
valueOf() 返回某个字符串对象的原始值
19、JavaScript算术运算符

运算符 描述 例子 x 运算结果 y 运算结果  
+ 加法 x=y+2 7 5  
- 减法 x=y-2 3 5  
* 乘法 x=y*2 10 5  
/ 除法 x=y/2 2.5 5  
% 取模(余数) x=y%2 1 5  
++ 自增 x=++y 6 6  
x=y++ 5 6  
-- 自减 x=--y 4 4  
x=y-- 5 4  
JavaScript赋值运算符

赋值运算符用于给 JavaScript 变量赋值。

给定 x=10  y=5,下面的表格解释了赋值运算符:

运算符 例子 等同于 运算结果 在线实例
= x=y   x=5 实例 »
+= x+=y x=x+y x=15 实例 »
-= x-=y x=x-y x=5 实例 »
*= x*=y x=x*y x=50 实例 »
/= x/=y x=x/y x=2 实例 »
%= x%=y x=x%y x=0 实例 »

两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串

20、 JavaScript数据类型typeof:在JavaScript中,数组是一种特殊的对象类型。 因此 typeof [1,2,3,4] 返回 object。

在 JavaScript 中 null 表示 "什么都没有"。null是一个只有一个值的特殊类型。表示一个空对象引用。用 typeof 检测 null 返回是object。

可以设置为 null 来清空对象:可以设置为 undefined 来清空对象:在 JavaScript 中, undefined 是一个没有设置值的变量。typeof 一个没有值的变量会返回 undefined

任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.

undefined与null区别

typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined            // true

在 JavaScript 中有 5 种不同的数据类型:

string   number   boolean  object   function

3 种对象类型:Object   Date   Array

2 个不包含任何值的数据类型:null   undefined

请注意:

  • NaN 的数据类型是 number
  • 数组(Array)的数据类型是 object
  • 日期(Date)的数据类型为 object
  • null 的数据类型是 object
  • 未定义变量的数据类型为 undefined

      如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 Object。

21、JavaScript数据类型转换:全局方法 String() 可以将数字转换为字符串。该方法可用于任何类型的数字,字母,变量,表达式:

JavaScript 类型转换


Number() 转换为数字, String() 转换为字符串, Boolean() 转化为布尔值。


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 (如果 myCar 没有声明)
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] }

尝试一下 »

你可以使用 constructor 属性来查看是对象是否为数组 (包含字符串 "Array"):

实例

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

尝试一下 »

你可以使用 constructor 属性来查看是对象是否为日期 (包含字符串 "Date"):

实例

function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}

尝试一下 »


JavaScript 类型转换

JavaScript 变量可以转换为新变量或其他数据类型:

  • 通过使用 JavaScript 函数
  • 通过 JavaScript 自身自动转换

将数字转换为字符串

全局方法 String() 可以将数字转换为字符串。

该方法可用于任何类型的数字,字母,变量,表达式:

实例

String(x)         // 将变量 x 转换为字符串并返回
String(123)       // 将数字 123 转换为字符串并返回
String(100 + 23)  // 将数字表达式转换为字符串并返回

尝试一下 »

Number 方法 toString() 也是有同样的效果。

实例

x.toString()
(123).toString()
(100 + 23).toString()

尝试一下 »

在 Number 方法 章节中,你可以找到更多数字转换为字符串的方法:

方法 描述
toExponential() 把对象的值转换为指数计数法。
toFixed() 把数字转换为字符串,结果的小数点后有指定位数的数字。
toPrecision() 把数字格式化为指定的长度。


将布尔值转换为字符串

全局方法 String() 可以将布尔值转换为字符串。

String(false)        // 返回 "false"
String(true)         // 返回 "true"

Boolean 方法 toString() 也有相同的效果。

false.toString()     // 返回 "false"
true.toString()      // 返回 "true"


将日期转换为字符串

全局方法 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)

在 Date 方法 章节中,你可以查看更多关于日期转换为字符串的函数:

方法 描述
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getFullYear() 从 Date 对象以四位数字返回年份。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。


将字符串转换为数字

全局方法 Number() 可以将字符串转换为数字。

字符串包含数字(如 "3.14") 转换为数字 (如 3.14).

空字符串转换为 0。

其他的字符串会转换为 NaN (不是个数字)。

Number("3.14")    // 返回 3.14
Number(" ")       // 返回 0 
Number("")        // 返回 0
Number("99 88")   // 返回 NaN

在 Number 方法 章节中,你可以查看到更多关于字符串转为数字的方法:

方法 描述
parseFloat() 解析一个字符串,并返回一个浮点数。
parseInt() 解析一个字符串,并返回一个整数。


一元运算符 +

Operator + 可用于将变量转换为数字:

实例

var y = "5";      // y 是一个字符串
var x = + y;      // x 是一个数字

尝试一下 »

如果变量不能转换,它仍然会是一个数字,但值为 NaN (不是一个数字):

实例

var y = "John";   // y 是一个字符串
var x = + y;      // x 是一个数字 (NaN)

尝试一下 »


将布尔值转换为数字

全局方法 Number() 可将布尔值转换为数字。

Number(false)     // 返回 0
Number(true)      // 返回 1


将日期转换为数字

全局方法 Number() 可将日期转换为数字。

d = new Date();
Number(d)          // 返回 1404568027739

日期方法 getTime() 也有相同的效果。

d = new Date();
d.getTime()        // 返回 1404568027739


自动转换类型

当 JavaScript 尝试操作一个 "错误" 的数据类型时,会自动转换为 "正确" 的数据类型。

以下输出结果不是你所期望的:

5 + null    // 返回 5         null 转换为 0
"5" + null  // 返回"5null"   null 转换为 "null"
"5" + 1     // 返回 "51"      1 转换为 "1"  
"5" - 1     // 返回 4         "5" 转换为 5


自动转换为字符串

当你尝试输出一个对象或一个变量时 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"
22、JavaScript正则表达式:

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

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

在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。

search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。


23、JS显示时间

    <table>
<tr>
<td>
<span id="nowDate"></span> 
<span id="nowTime"></span>
</td>
</tr>
</table>
<script type="text/javascript">
var ns4up1 = (document.layers) ? 1 : 0; // browser sniffer
var ie4up1 = (document.all && (navigator.appVersion.indexOf("MSIE 4") == -1)) ? 1 : 0;
var ns6up1 = (document.getElementById && !document.all) ? 1 : 0;
function nowclock() {
if (!ns4up1 && !ie4up1 && !ns6up1) {
return false;
}
var digital = new Date();
var hours = digital.getHours();
var minutes = digital.getMinutes();
var seconds = digital.getSeconds();
var day = digital.getDate();
var month = digital.getMonth() + 1;
var year = digital.getFullYear();
var amOrPm = "AM";
if (hours > 11) {
amOrPm = "PM";
}
if (hours > 24) {
hours = hours - 24;
}
if (hours == 0) {
hours = 24;
}
if (minutes < 10) {
minutes = "0" + minutes;
}
if (seconds < 10) {
seconds = "0" + seconds;
}
if (day < 10) {
day = "0" + day;
}
if (month < 10) {
month = "0" + month;
}
dispTime = hours + ":" + minutes + ":" + seconds + " " + amOrPm;
dispDate = year + "年" + month + "月" + day + "日";
if (ns4up1) {
document.layers.nowTime.document.write(dispTime);
document.layers.nowTime.document.close();
document.layers.nowDate.document.write(dispDate);
document.layers.nowDate.document.close();
} else if (ns6up1) {
document.getElementById("nowTime").innerHTML = dispTime;
document.getElementById("nowDate").innerHTML = dispDate;
} else if (ie4up1) {
nowTime.innerHTML = dispTime;
nowDate.innerHTML = dispDate;
}
setTimeout("nowclock()", 1000);
}
nowclock();
</script>


 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场