JavaScript词法结构、变量

1,JavaScript区分大小写,
2,在JavaScript中字符串是固定不变的,replace()和toUpperCase()的方法都返回新字符串,原字符串本身并没有发生改变。
3,全局对象:
全局属性:如undefined、Infinity何NaN
全局函数:如isNaN()、parseInt()、eval()
构造函数:如Date()、RegExp()、String()、Object()和Array()
全局对象:如Math和JSON
在代码的最顶级–不在任何函数内的JavaScript代码–可以使用JavaScript关键字this来引用全局对象:
var global=this;//定义一个引用全局对象的全局变量
在客户端JavaScript中,在其表示的浏览器窗口中的所有JavaScript代码中,Window对象充当了全局对象,这个全局Window对象有一个属性window引用其自身,它可以代替this来引用全局对象。
JavaScript中字符串所有的方法实际上返回的是一个新的字符串值。

var o={ x:1 };//定义一个对象
o.x=2;//通过修改对象属性值来更改对象
o.y=3;//再次更改这个对象,给它增加一个新属性
var a=[1,2,3];//数组
a[0]=0;//更改数组的一个元素
a[3]=4;//给数组增加一个新元素
如果想比较两个单独的对象或数组,则必须比较它们的属性或元素。
function equalArrays(a,b){
    if(a.length!=b.length)return false;
    //两个长度不同的数组不相等
//遍历所有元素,如果有任意元素不等,则数组不相等
    for(var i=0;i<a.length;i++)
        if(a[i]!=b[i])return false;
    return true;
}

显示转换

var n=17;
binary_string=n.toString(2);"10001"
octal_string="0"+n.toString(8);"021"
hex_string="0x"+n.toString(16);//"0x11"

toFixed()根据小数点后的指定位数将数字转换为字符串, toExponential()使用指数记数法将数字转换为指数形式的字符串 toPrecision()根据指定的有效数字位数将数字转换为字符串。 

parseInt(“11”,2); //->3(1*2+1)

变量作用域
在函数体内,局部变量的优先级高于同名的全局变量。如果在函数内声明的一个局部变量或者函数参数中带有的变量和全局变量重名,则全局变量被局部变量遮盖。

var scope=”global”;//声明一个全局变量
function checkscope(){
var scope=”local”;//声明一个同名的局部变量
return scope;//返回局部变量的值,而不是全局变量的值
}
checkscope()//

函数作用域

function test(o){
var i=0;//i在整个函数体内均是有定义的
if(typeof o==”object”){
var j=0;//j在函数体内是有定义的,不仅仅是在这个代码段内
for(var k=0;k<10;k++){//k在函数体内是有定义的不仅仅是在循环内
console.log(k);//输出0-9
}
console.log(k);//输出10
}
console.log(j);//
}
JavaScript的函数作用域是指在函数内声明的所有变量在函数体内始终是可见的。
作为属性的变量
var truevar=1;//声明一个不可删除的全局变量
fakevar=2; //创建全局对象的一个可删除的属性
this.fakevar2=3; //同上
delete truevar; //false:变量没有被删除
delete fakevar //true:变量被删除
delete this.fakevar2 //true:变量被删除



你可能感兴趣的:(JavaScript)