javascript为什么会给人一种不够严谨的感觉

JavaScript011

javascript为什么会给人一种不够严谨的感觉,第1张

删除arr中的元素

// 就这样,数组中下标10以后的元素就被删除了

arr.length = 10

变量比较

var str = ''

var num = 0

console.log(str == num) //结果是true

函数也是对象

function foo () {console.log('foo')}

foo.foo = foo

foo.foo.foo.foo.foo.foo.foo.foo.foo.foo.foo.foo() // 输出foo

变量可以重复声明

var a = 1

var a = 3

console.log(a) // 输出3,声明被下面覆盖了

变量声明前置

var a = 1

function foo () {

    console.log(a)

    var a = 3

}

foo() // 结果是undefined,因为a在函数入口通过声明前置已经定义了,所以不会是外面的闭包变量a,同时又没有被赋值,因此是undefined

还有更多的例子来佐证javascript有多变态,这里就不一一列举了,看完了这些以后,你就知道javascript有多么灵活了!灵活通常是不严谨的代名词!

喜欢的人自然喜欢,不喜欢的人主要是对css和事件讨厌。

js这种不严格的语言也可以用严格的语法,相对比较轻松上手,写其他语言的人也可以轻松入门。

但是js在深层次当中,会涉及css,html和事件、原型链等,所以有些人遇到这些的时候会不喜欢。

function showtable(obj) {

    var tablename=document.getElementById(obj)

    var li=tablename.getElementsByTagName("tr")

    for (var i=0i<li.lengthi++){

        if (i%2==0){

        li[i].style.backgroundColor="#efefef"

        }else li[i].style.backgroundColor="#FFFFFF"

    }

}

    

window.onload=function(){

    showtable('1')

    showtable('2')

}

把你的js代码稍微修改一下就可以了;

你要做的是表格的隔行换色吧,另外你的js里面写的不够严谨,会多遍历一次无效的li,也就是i<=li.length那里,应该改成i<length,因为对象下标和你的for循环都是从0开始的;