关键字in的用法_javascript技巧_脚本之家

一:字面量含义
JavaScript解析器将当前作用域内声明的所有变量和函数都会放到作用域的开始处,但是,只有变量的声明被提前到作用域的开始处了,而赋值操作被保留在原处。
字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量。
示例1:
字面量分为字符串字面量、数组字面量和
var a =function(){
对象字面量,另外还有函数字面量。
console.log(‘aaa’);
电子游戏平台,var test=”hello world!”;”hello world!”就是字符串字面量,test是变量名。
}
二:对象字面量
function a(){
对象字面量有两种访问方式:例子如下,
console.log(‘bbb’);
var obj = {a:’aaa’,//a是属性,’aaa’是属性值b:’bbb’,c:’ccc’}
}
方法一: obj.a// aaa,for in遍历对象时,此方法失效…
a();//结果:aaa
方法二: obj[‘a’]//aaa,必须要加引号
首先函数申明和变量申明都会提前到作用域的开始出,但是变量声明的赋值操作被保留在原处,即
var a = undefined ,
【点方法只适合属性是字符串的情况,如果属性是变量,只能用后者】
a = function(console.log(‘bbb’);){} 然后当程序执行到原变量赋值处时 a
= function(){console.log(‘aaa’); 然后在执行a()就相当于执行
属性为变量时,只能用如下方法赋值:
var a =function(){console.log(‘aaa’);}这个函数 结果也就是aaa了
var obj = {};obj[$a] = ‘value’;
示例2:
若是直接写 {$a: ‘value’},$a会被解析成字符串。
1:function a() {}
格式:……注意,,,
var a;
当“对象”为数组时,“变量”指的是数组的“索引”;
alert(typeof a); //function:
当“对象”为对象时,“变量”指的是对象的“属性”。
2:
var a;
以上这篇浅谈js之字面量、对象字面量的访问、关键字in的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
function a() {}
alert(typeof a); //function:
3:function a() {}
var a =2;
alert(typeof a); //number:
4:
var a =2;
function a() {}
alert(typeof a); //number:
5:
var a =2;
var a =function () {}
alert(typeof a); //function:
总结1:函数表达式只有变量“被提前”了,函数没有“被提前(示例5)
2:函数申明会首先被提升,然后才是变量申明(示例3,4)
3:重复的var(变量)声明会被忽略掉(示例1,2)
关于js浮点数相加的问题(其实java中也存在这个问题)
有时候项目中会遇到这种需求,那么该如何解决了,当前我所采用的方法是将浮点数转变成整数进行运算,然后对结果在除以相应的倍数
例如:
(1.1*10+0.1*10)/10
1.2//结果正常
上面只是真的一个案例来说,那么如果对于其他浮点数(2位小数点或者更多小数点)相加,我们可以采取一个通用的方法,即先判断参加运算的浮点数最多有几位小数点,然后全部乘以这个最多位数的10的倍数
即:将参加运算的数转换为字符串,然后利用js的split()的方法获取最长的小数位数,方法如下
var a = “1.222222”
b = a.split(“.”)
b[1].length //结果为6
通过这种方法就可以解决小数的位数问题了
使用 slice() 从字符串提取字符,返回的是被截取的字符串
如何获取用js获取url后面的参数
function getParam(queryValue){
var str = location.search.substring(1);
var valueArry = str.split(“&”);
for(var i=0,length=valueArry.length;i<length;i++){
var index = valueArry[i].split(“=”);
if(index[0] == queryValue) return index[1];
}
return false
}
//访问js对象属性
var test ={a:1,b:2}
一般方式:test.a //结果 1
另一种方式:test[‘a’] //结果 1 通过访问对象的动态属性
//js匿名执行函数也就是形成一个闭包
两种方式
1:(function(){alert(1)})()
执行结果 弹出1:
2.(function(){alert(1)}())
执行结果为弹出1:加括弧的主要用途是将里面的函数声明变成函数表达式,还有形容
~function test(){}() ,true&& function test(){}()
也是可以的,原理都是讲一个声明式函数转换为函数表达式,可以立刻执行
易错点
js中的数组的长度计算方法为arry.length,其数值为index的值大1,并不是数组里面有几个元素长度就为几,如下