学习笔记
来源:互联网 发布:linux调整日志级别 编辑:程序博客网 时间:2024/06/03 14:10
之前没有很系统的学习javascript,在学习过程中收录了一些有用的资料,供以后查阅使用。不断补充。
1、 js的引用指向的只能使用具体的对象,而不是另外一个引用。对个变量能够指向同一个对象。
2、 函数重载和类型检查
Js的每个函数都带有一个仅在这个函数范围内作用的变量称为参数,它是一个包含所有传给函数的参数的伪数组,所以它并非真正意义的数组(也就是说你不能修改它,也不能用push()来添加新元素),但是可以访问其中的元素,它也有.length属性。
function sendMessage(msg,obj){
if(arguments.length == 2)
obj.handleMsg(msg);
else
alert(msg);
}
//传一个参数,直接显示信息
sendMessage("Hello world");
//也可以将自定义的一个对象传入,用另外一套方法显示信息
sendMessage("How are you?",{handleMsg : function(customMsg){
alert("This is a custom massage:"+customMsg);
}
});
//一个接受任意数量的参数并将其转化为数组的参数
function makeArray(){
var arr = [];
for(var i=0;i<arguments.length;++i)
arr.push(arguments[i]);
return arr;
}
还有一个用来判断传入参数类型的方法。如果没有提供参数,它的类型必为undefined。第一种方法是使用typeof操作符。
function displayError(msg){
if(typeof(msg) == "undefined")
alert("argument absent!");
else if(typeof(msg) == "string")
alert("type of argument is string");
}
displayError();
displayError("aaaa");
使用typeof判断类型,当变量不是object或array时,是最完美的解决方案了。但是,对于自定义对象,如user,typeof就只能返回object,很难与其他object区分开来。第二种检查类型的方法。需要引用所有js对象都带有的一个属性,称为构造函数constructor。
if(num.constructor==String)
num = parseInt(num);
if(str.constructor==Array)
str = str.join(",");
变量
typeof(变量)(都是字符串类型)
变量.constructor
{an:”object”}
object
Object
[“an”,”array”]
object
Array
function(){}
function
Function
“a string”
string
String
55
number
Number
true
boolean
Boolean
new User()
object
User
3、作用域(scope)
1)在js里,作用域是由函数划分的,而不是由块划分的。
2)基于浏览器的js的一个有趣的特性是,所有属于全局作用域的变量其实都是window对象的属性。
3)另外,当变量缺乏声明时,它就是全局的,而不管它位于函数内或者块内。
- 学习笔记?
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- SEO阅读笔记二(如何使网站产生收入)
- 记事本
- (转)NHibernate使用Criteria分页显示并返回记录总数
- Web开发必知的八种隔离级别
- 很强大的一个linux blog
- 学习笔记
- Oracle 游标的使用与管理
- Silverlight 动态调用 WCF And WebService
- Eclipse 3.5 中的jvm terminated.Exit code=-1错误的解决
- GridView序号列
- 坐标系统详解
- 按鼠標效果(http://hi.baidu.com/xuexiang516168/blog/item/01d36144afaebb3586947367.html)
- C++中的动态空间扩充方法
- 泛型