javascript知识回顾

来源:互联网 发布:怎么申请成为淘宝达人 编辑:程序博客网 时间:2024/06/05 04:48
一、重新声明 JavaScript 变量
如果重新声明 JavaScript 变量,该变量的值不会丢失:


在以下两条语句执行后,变量 carname 的值依然是 "Volvo":


var carname="Volvo"; 
var carname;
二、javascript数据类型:
String/Number/Boolean/Array/Object/Null/undefined
1.String : 单引号和双引号都可以
注意:
a.不要创建 String 对象。它会拖慢执行速度,并可能产生其他副作用:
eg:
var x = "John";              
var y = new String("John");
(x === y) // is false because x is a string and y is an object
(x == y) //true
b.转义字符:
c.方法:
charAt():返回指定索引位置的字符
charCodeAt():返回指定索引位置字符的 Unicode 值
concat():连接两个或多个字符串,返回连接后的字符串
fromCharCode():将字符转换为 Unicode 值
indexOf():返回字符串中检索指定字符第一次出现的位置
lastIndexOf():返回字符串中检索指定字符最后一次出现的位置
split()
substr()
substring()
trim():
String.prototype.trim = function(){
return this.replace(/^s+/g,'').replace(/\s+$/g,'');
}



2.Number : javascript只有一种数字类型,可以是小数
另外,极大或极小的数字可以通过科学计数法来书写
3.Boolean : 布尔(逻辑)只能有两个值:true 或 false。
4.Array : 
可以有一下几种定义方式:
一、var cars=new Array();
二、var cars = ["cat","dog","mouse"];
三、var cars = new Array("cat","dog","mouse");
5.Object : {}
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔
6.Undefined 和 Null
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
eg:
var person;
var car="Volvo";
document.write(person + "<br>");//undefined
document.write(car + "<br>");//Volvo
var car=null
document.write(car + "<br>");//null
7.声明变量类型
当您声明新变量时,可以使用关键词 "new" 来声明其类型:
javaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。

三、javascript 对象
var person={
name:'jjyy',
age:25
}
A.注意:
a.JavaScript 对象是拥有属性和方法的数据
b.在 JavaScript中,几乎所有的事物都是对象。
c.JavaScript 对象是属性和方法的容器。
B.访问对象属性
a.person.name
b.person['name']

四、javascript 函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块
1.局部 JavaScript 变量
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
只要函数运行完毕,本地变量就会被删除。
2.全局 JavaScript 变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它
3.JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
4.向未声明的 JavaScript 变量分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明
5.HTML 中的全局变量
在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。


五、运算符
注意:+
数字和字符串之间的使用[规则:如果把数字与字符串相加,结果将成为字符串]
eg:
var x = 5+5;//10
var y = "5"+5;//55
vat z = "Hello"+5;//Hello5
六、比较 和 逻辑运算符
==   等于
=== 绝对等于(值和类型均相等)
!==  绝对不等于(值或类型不相等)
七、循环
for - 循环代码块一定的次数
for/in - 循环遍历对象的属性
eg:
var person={fname:"John",lname:"Doe",age:25}; 
for (x in person){
 txt=txt + person[x];
}
while - 当指定的条件为 true 时循环指定的代码块
do/while - 同样当指定的条件为 true 时循环指定的代码块

八、typeof, null, 和 undefined
1.typeof
typeof "John"                // 返回 string 
typeof 3.14                  // 返回 number
typeof false                 // 返回 boolean
typeof [1,2,3,4]             // 返回 object
[注意;在JavaScript中,数组是一种特殊的对象类型。 因此 typeof [1,2,3,4] 返回 object。] 
typeof {name:'John', age:34} // 返回 object
用 typeof 检测 null 返回是object。
用 typeof 检测 undefined 返回是undefined。
注意:在 JavaScript 中, undefined 是一个没有设置值的变量。
    typeof 一个没有值的变量会返回 undefined。
2.Undefined 和 Null 的区别
typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined // true
3.特别注意:
NaN 的数据类型是 number
数组(Array)的数据类型是 object
日期(Date)的数据类型为 object
null 的数据类型是 object
未定义变量的数据类型为 undefined

九、类型转换
1.将布尔值转换为数字
Number(false)     // 返回 0
Number(true)      // 返回 1
2.自动转换类型 Type Conversion
5 + null    // 返回 5         because null is converted to 0
"5" + null  // 返回"5null"   because null is converted to "null"
"5" + 1     // 返回 "51"      because 1 is converted to "1"  
"5" - 1     // 返回 4         because "5" is converted to 5
3.将字符串转换为数字
全局方法 Number() 可以将字符串转换为数字。
字符串包含数字(如 "3.14") 转换为数字 (如 3.14).
空字符串转换为 0。
其他的字符串会转换为 NaN (不是个数字)。
eg:
Number("3.14")    // 返回 3.14
Number(" ")       // 返回 0 
Number("")        // 返回 0
Number("99 88")   // 返回 NaN

十.错误 - throw、try 和 catch


十一、javascript调试:
1.chrom V8引擎
2.debugger 关键字

十二、JavaScript JSON
1.JSON 是用于存储和传输数据的格式。
2.JSON 通常用于服务端向网页传递数据 。
3.JSON 语法规则
数据为 键/值 对。
数据由逗号分隔。
大括号保存对象
方括号保存数组
4.JSON 字符串转换为 JavaScript 对象
var obj = JSON.parse(text);
javaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象
对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:
十三、锚点
href="#"与href="javascript:void(0)"的区别
# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。
而javascript:void(0), 仅仅表示一个死链接。
在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。
如果你要定义一个死链接请使用 javascript:void(0)。
eg:
<a href="javascript:void(0);">点我没有反应的!</a>
<a href="#pos">点我定位到指定位置!</a>
<br><br><br> <p id="pos">尾部定位点</p>
十四、JavaScript 函数参数
1.参数规则
JavaScript 函数定义时参数没有指定数据类型。
JavaScript 函数对隐藏参数(arguments)没有进行检测。
JavaScript 函数对隐藏参数(arguments)的个数没有进行检测。
十五、JavaScript 闭包
1.JavaScript 变量可以是局部变量或全局变量
2.私有变量可以用到闭包
十六、JavaScript 类
注意:
JavaScript 是面向对象的语言,但 JavaScript 不使用类。
在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。
JavaScript 基于 prototype,而不是基于类的。

A.Number类
1.JavaScript 只有一种数字类型。
2.所有 JavaScript 数字均为 64 位
3.八进制和十六进制
如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。
4.可以使用 toString() 方法 输出16进制、8进制、2进制
var myNumber=128;
myNumber.toString(16);   // returns 80
myNumber.toString(8);    // returns 200
myNumber.toString(2);    // returns 10000000

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

C.NaN - 非数字值
注意:
除以0是无穷大,无穷大是一个数字
eg:
var x = 1000 / 0;
isNaN(x); // returns false
NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,
来指示其不是数字值。你可以使用 isNaN() 全局函数来判断一个值是否是 NaN 值。

D.数字可以是数字或者对象
数字可以私有数据进行初始化,就像 x = 123;
JavaScript 数字对象初始化数据, var y = new Number(123);
eg:
var x = 123;              
var y = new Number(123);
(x === y) // is false because x is a number and y is an object.
E. Boolean(布尔) 对象
如果布尔对象无初始值或者其值为:
0、-0、null、""、false、undefined、NaN
那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 "false" 时)!

十七、BOM对象
计时事件:
setInterval() - 间隔指定的毫秒数不停地执行指定的代码。
setTimeout() - 暂停指定的毫秒数后执行指定的代码
clearInterval() 方法用于停止 setInterval() 方法执行的函数代码。
clearTimeout() 方法用于停止执行setTimeout()方法的函数代码。

十八、JSONP
Jsonp是json的一种"使用模式",可以让网页从别的域名(网站)那获取资料,
即跨域读取数据。为何我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP)呢?
这是因为同源策略。同源策略:它是由Netscape提出的一个著名的安全策略,现在
所有支持javascript的浏览器都会使用这个策略。
所谓同源是指,域名,协议,端口相同。
eg:
<script>
$.getJSON("http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=?", function(data) {

var html = '<ul>';
for(var i = 0; i < data.length; i++)
{
html += '<li>' + data[i] + '</li>';
}
html += '</ul>';

$('#divCustomers').html(html); 
});
</script>
0 0