JS代码分析

JavaScript07

JS代码分析,第1张

楼主,我发觉你这代码问题太多了。你看:var p=""var x=document.password.pass.valueif (x==p) {

window.open(p+".html")——问题出在,这里p="",即便从表单中取值取到了x="",成立,也不可能打开你要的页面啊,这里绝对出错啊,因为找不到这么一个页面。因为p+".html"得出来的是一个字符串,p+".html"=“.html”,只有一个后缀名,并没有页面的名称,你怎么打开这个页面?结果1:什么都不输入,直接提交,绝对会报你找不到这个页面的错误。结果2:输入一个空格或者其他内容,就会弹出“恭喜您,答错了,看来你的JS还得加强哦 ”这句话

}else{

alert("恭喜您,答错了,看来你的JS还得加强哦 !")

}解答如上:再强调下x=p后跳转到哪吧。如果你的代码写成这样:function PassConfirm() {

var p="myname"——给p一个值

var x=document.all.name.value

if (x==p) {

window.open(p+".html")

}else{

alert("恭喜您,答错了,看来你的JS还得加强哦 !")

}

}在文本框中输入myname后,提交,此时x被赋值x=myname,既然p=myname,x=myname,条件成立(x==p),进入window.open(p+".html")这行代码,打开的页面就叫myname.html(注:p="myname",p+".html"="myname"+"html",这叫连接字符串,连起来就=myname.html了)了。楼主要记住一点,这里是打开一个新页面,并不是跳转到另一个页面。

这是js面向对象的用法,意思是给sas.ued.FlashObject添加属性,其中一个是setAttribute,另一个是getAttribute,只不过这两个属性都是方法而已。关于这两个方法的作用显而易见,是属性的赋值和获龋 所谓:和{}以及,,就像是map型数据,举例来说

早期的JSON解析器基本上就是使用JavaScript的eval()函数。由于JSON是JavaScript语法的自己,因此eval()函数可以解析、解释并返回JavaScript的对象和数组。

ECMAScript

5对解析JSON的行为进行了规范,定义了全局对象JSON。

JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript。例如:

新建一个HTML:代码如下:

复制代码

代码如下:

<html>

<head>

<title></title>

<script

type="text/javascript">

function

init()

{

var

book={

title:"JavaScript高级程序设计",

authors:[

"Nicholas

C.

Zakas"

],

edition:3,

year:2011

}

var

jsonBook=JSON.stringify(book)

var

objectBook=JSON.parse(jsonBook)

var

title=objectBook.title}

</script>

</head>

<body>

<input

type="button"

onclick="init()"

value="测试"

/>

</body>

</html>

默认情况下,JSON.stringify()输出的JSON字符串不包含任何空字符或缩进,因此保存在jsonBook中的字符串如下所示:

复制代码

代码如下:

{"title":"JavaScript高级程序设计","authors":["Nicholas

C.

Zakas"],"edition":3,"year":2011}

在序列化JavaScript对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined的任何属性也都会被跳过。结果中最终都是值为有效JSON数据类型的实例属性。

注意,虽然book与objectBook具有相同的属性,但它们是两个独立的、没有任何关系的对象。如果传给JSON.parse()的字符串不是有效的JSON,该方法会抛出错误。