<script type="text/javascript" src="temp.js"></script>
/*
在字符串中我们可以使用\作为转义字符
当表示一些特殊符号时可以使用\进行转义
\" 表示 "
\n 表示换行
\t 表示制表符
\\ 表示\
*/
var str="你好\"大忽悠\"";
var a=123;
var b="大忽悠";
alert(typeof a);
alert(typeof b);
alert(Number.MAX_VALUE);
alert(Number.MIN_VALUE);
本质是调用String()函数
在任何数据类型前使用+和-都可以隐式将其转换为Number类型
例如: 1 + +“2” +3=6
1+ “2”+3=“123”
&#编码; ==>这里的编码需要的是10进制,unicode是十六进制
//创建对象
var obj=new dhy();
//增加属性
obj.name="大忽悠";
obj.age=18;
// 修改对象的属性
obj.name="小朋友";
//删除对象属性
delete obj.name;
var obj=new dhy();
obj["name"]="大忽悠";
var chose="name";
alert(obj[chose]);
{}和new的方式,本质上是一样的
var obj={
name:"大忽悠",
age:18,
"hobby":健身,//属性名可以加"",也可以不加
test: {name:123} //属性值是一个对象
};
<script type="text/javascript">
//创建一个函数对象
//将需要封装的代码以字符串的形式传递给构造函数
var func=new Function("alert(typeof func);");
//封装到函数中的代码不会立刻执行,函数中的代码会在函数调用的时候执行
//调用语法:函数对象()
func();
//查看func的类型
alert(typeof func);
</script>
function f1(){
alert("大忽悠");
}
//调用函数
f1();
var f1=function (){
alert("大忽悠");
}
//调用匿名函数
f1();
创建一个匿名函数,将这个匿名函数对象赋值给一个变量
var peo={
name:"大忽悠",
age:18
}
for( var attr in peo)
{
document.write(peo[attr]);
}
[]才可以传递变量,.不行
f1();//没得问题
//函数声明形式
function f1()
{
}
f2();//错误
//函数表达式形式,即匿名函数
var f2=function ()
{
}
d=100;
alert(d);
window是一个全局对象,其实就是相当于那个对象调用这个函数,那么这个函数里面的隐式参数this就是当前调用这个函数的对象
var CreatePeo=function(name,age){
var obj={
name:name,
age:age
};
return obj;
};
var p1=CreatePeo("大忽悠1",18);
var p2=CreatePeo("大忽悠2",19);
var p3=CreatePeo("大忽悠3",20);
function People()
{
name="大忽悠";//全局变量name
this.name="大忽悠";//当前新建对象的属性name
}
var people=new People();
对于通过构造函数创建的对象而言,每一次创建,里面的所有变量和对象(函数对象)都会重新创建一遍,那么这样会很浪费空间
通过将该类构造方法下创建的所有对象的公共的属性和方法,统一添加到原型对象中,完成对资源的节约
function People()
{
this.name="大忽悠";
}
//设置原型对象的属性
People.prototype.age=18;
var p=new People();
alert(p.age);
如果只重写当前对象的tostring方法,那么只对当前对象起效
如果修改当前原型的tostring,那么对当前构造函数创建的对象都有效
使用typeof检查一个数组,会返回object
//创建数组对象
var arr=new Array();
//向数组中添加元素
arr[0]=123;
//获取数组中的元素
alert(arr[0]);
//获取数组长度
var len=arr.length;
第三个参数开始的新元素,用来替换删除掉的元素