var 声明的作用,看以下两个例子:
if (! "a" in window){
var a = 0;}
alert(a);
if (! "a" in window){
a = 0;
}
alert(a);
首先:js没有块级作用域,即if,for等语句里声明的变量和其外一层的变量的作用域是一样的(函数作用域,作用域的“局部"是相对于函数而言的)。
var i = 0;
if (i>0){
var j = 1;
}
实际上,在以上代码中,i,j的作用域是一样的。
例子一利用了var声明变量a,提示undefined
而例子二仅仅是给a赋值a=0,然而出现错误:Uncaught ReferenceError: a is not defined
这是因为在给一个变量声明时,变量的声明会在预编译阶段被提前到函数体的顶部,但变量的赋值不会。
因此 var a=0是已经声明了变量a,所以会出现undefined, 而a=0并没有声明变量a,所以会出现错误。
jQuery innerWidth() 和 innerHeight() 方法
innerWidth() 方法返回元素的宽度(包括内边距)。
innerHeight() 方法返回元素的高度(包括内边距)。
onBlur:当失去输入焦点后产生该事件
onFocus:当输入获得焦点后,产生该文件
onchange:当文字值改变时,产生该事件
onselect:当文字加亮后,产生该事件
onClick:当组件被点击时产生的事件
js和jquery设置disabled属性为true使按钮失效
设置disabled属性为true即为不可用状态。
JS
document.getElementByIdx("btn").disabled=true;
jquery
$("#btn").attr("disabled", true);
html
<input type="button" value="提交" id="btn">
输出对象中值大于2的key的数组
var data = {a: 1, b: 2, c: 3, d: 4};
Object.keys(data).filter(function(x) { return 1 ;})
期待输出:[“c”,”d”]
这是对js过滤器,以及获取对象属性的应用;
通过Object.keys(data)获取data中的属性数组;
对属性数组进行过滤器的操作,在filter中进行一定条件的判定,如数值大于2,而过滤器就将不符合条件的数据过滤掉,返回符合条件的属性。
Object.keys(data).filter(、
function(x) {
return data[x]>2;
})
1
2
3
4
5
6
7
|
var person={fname:
"John"
,lname:
"Doe"
,age:25};
var txt=
""
;
for (x in person)
{
txt=txt + person[x];
}
alert(txt);
|
for-in语句能够枚举对象的自定义属性和原型链属性,而hasOwnProperty只能获取自定义的属性
1.Javascript中,由于其变量内容不同,变量被分为基本数据类型变量和引用数据类型变量。基本类型变量用八字节内存,存储基本数据类型(数值、布尔值、null和未定义)的值,引用类型变量则只保存对对象、数组和函数等引用类型的值的引用(即内存地址)。
2. JS中的数字是不分类型的,也就是没有byte/int/float/double等的差异。