javascript解答,javascript的理解

JAVASCRIPT疑难解答

Oimg.onmouseover=function(){Oimg.style.borderColor="red";}

创新互联-专业网站定制、快速模板网站建设、高性价比清镇网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式清镇网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖清镇地区。费用合理售后完善,10余年实体公司更值得信赖。

或许你还需要鼠标移出的效果:

Oimg.onmouseout=function(){Oimg.style.borderColor="#708090";}

javascript例子解答

html

head

titledemo/title

style type="text/css"

!--other code--

#d{border:1px solid gray;width:300px;height:100px;font-size:2em;}

.Red{background:red;}

.Green{background:green;}

.Blue{background:blue;}

!--other code--

/style

style type="text/javascript"

function cRed(){

var wDiv=(这里补充) ;

wDiv.className="Red";

}

/style

/head

body

h3点击层下面的按钮,可以设置相应的背景色/h3

div id="d"DIV Elements/divbr/

input type="button" value="red" onclick="javascript:document.getElementById('d').className='Red'"/

input type="button" value="green" onclick="javascript:document.getElementById('d').className='Green'"/

input type="button" value="blue" onclick="javascript:document.getElementById('d').className='Blue'"/

!--other code--

/body

/html

javascript语法问题很底层,高手解答?

首先申明,请楼主用Chrome浏览器运行代码,这样会有更直观理解(IE9以下可能会报错),可以用console.log输出调试信息。

问题一:

for..in..是用来枚举对象属性/方法,但有限制的,并不是对象的所有属性方法都可以枚举。最简单的解释是,对象的属性/方法有一个是否可枚举(enumerable)特性:按照ECMAScript 5说法,对象属性/方法有四个特性:值(value)、可写性(writable)、可枚举性(enumerable)和可配置性(configuarable),若属性/方法的enumerable特性为true,则该属性/方法可以被for..in..枚举出来;若为false,则无法被for..in枚举出来。每个对象提供一个叫做propertyIsEnumerable方法检测某个属性/方法的enumerable的值。楼主可以运行一下代码:

console.log(Math.propertyIsEnumerable('sin'));//运行结果为false

console.log(Math.propertyIsEnumerable('cos'));//运行结果为false

其实,Math对象是ECMAScript的内置对象,它定义了很多有关数学运算的属性/方法,设计的初衷应该是不希望使用者枚举它的属性,或者说这对使用者并没有实际意义,所以将它的所有属性/方法的enumerable特性设置为false。

至此楼主会有一个疑问,我们是否可以指定自定义对象的属性四个特性的值,回答是肯定的,在ECMAScript 5以前,对象的属性/方法的值(value)都是可设定,而其他三个属性我们是无法设定。但在ECMAScript 5,提供了这个的方法让我们都可以对四个特性进行设定。比如

var o = {};

//添加一个不可枚举的属性x,并赋值1

Object.defineProperty(o, "x", {

value: 1,//值为1

writable: true,

enumerable: false,//不可枚举

configurable: true

});

for(var i in o){

console.log(i);//是无法枚举出x的

}

问题二:

楼主理解有些出入。基本数据类型:数字、字符串、布尔值,而null和undefined是两个特殊的原始值,除了这些外就都是对象了。由此看来,function也是对象,但它是一个特殊的对象。由于function在javascript的特殊作用,以至于被称为一等公民。typeof运算符得到值只有这些:number、string、boolean、undefined、object、function。至于楼主说ECMAScript为何没有提到这些,因为function也被笼统地归纳为对象,只是在使用typeof运算符跟普通的对象有了区别,返回的function而不是object

Function是function对象的构造函数,所以运行typeof Function == 'function'啦。

问题三:

这个涉及到非常多知识点,我只能初略地说一下了。首先我们得清楚一点,NaN是构造函数Number的一个属性。好的,楼主应该会有疑问,构造函数的属性是什么东西?前面已经说过,函数也是对象,既然是对象自然就可向它添加属性方法啦。比如:

function test(){}

test.name = 'test';//添加属性

test.printMyName = function(){

console.log('my name is test');

};

//访问name属性

console.log(test.name);

//调用printMyName方法

test.printMyName();

呵呵,是不是跟一个普通对象没有区别。那好,有了这个概念就好说了。既然NaN是构造函数Number的属性,那么它就自然不可能被Number的实例所继承,当然就不能访问了。

最后推荐两部书:《JavaScript权威指南》(第六版)、《JavaScript高级程序设计》(第三版)

希望对你有用。

JavaScript 练习题求解答

1.

for(var i=1000;i=9999;i++){

if(i%13==0){

var n2 = Math.floor(i/10)%10;

var n3 = Math.floor(i/100)%10;

var n4 = Math.floor(i/1000);

if(n2+n3==n4)

console.log("满足条件的数为:"+i);

}

}

2.

var sum = 0, start = 1, end=0, n=1;

while(start 500) {

for(n = start; sum 1000; n++) {

sum += n;

if(sum == 1000) {

end=n;

console.log("连续相加为1000的连续正整数为:"+start+"到"+end);

}

}

start++;

sum = 0;

}

javascript比较问题;求解答

正解:

javascript是一个弱类型的语言,是一种脚本语言,所以对类型支持比较简单

只有三种类型 数值型(int,double等)、字符串(String)、和对象(Object)

str1和str2 是通过new取得的两个对象,所以比较的时候是按照Object来比较的,所以引用不同的两个对象用==比较一定是false

str2和str3,str3=“56”,这时候str3被认为是String类型来处理,==比较的时候如果遇到一方为String类型会尝试将另外一个也转换成String类型来处理,之后比较其内容。

所以,str2==str3结果是true

同样:56 和"56"比较的时候也是把56(数值型)转为String然后与String类型的"56"做比较,结果为true

javascript问题解答

var num;

var max = 0;

for (var i = 0; i  3; i++) {

num = Math.ceil(Math.random() * 100) + 1;

document.write(num + 'br /');

if (num  max) {

max = num;

}

}

document.write('最大的是:' + max);


分享文章:javascript解答,javascript的理解
标题来源:http://azwzsj.com/article/phjcpg.html