您当前的位置:首页 > 互联网教程

Js基础算法有哪些

发布时间:2025-05-24 22:45:07    发布人:远客网络

Js基础算法有哪些

一、Js基础算法有哪些

这次给大家带来Js基础算法有哪些,使用Js基础算法的注意事项有哪些,下面就是实战案例,一起来看一下。

A:一个素数只能被它自己和1整除。所以,我将运行一个while循环并加1。(看代码示例,如果你无法理解,那这不是你的菜。先回去学习javaScript基础知识然后再回来吧。)

isPrime(237);//= falseQ:你能做得更好吗?

A:可以。除数一次增加1个。在3之后我可以增加2.如果一个数可以被任何偶数整除,它将被2整除。

补充:如果你不需要把除数增加到这个数。你可以更早停止。让我在下面的步骤中解释一下(如果需要可以多读几遍)

第一步,任何数字都不能被大于它的一半的数字整除。例如,13将永远不能被7,8,9整除??它甚至可以是偶数的一半。例如,16将被8整除,但永远不会被9,10,11,12??

结论:一个数字将永远不能被一个大于其一半数值的数字整除。所以,我们可以少循环50%。

第二步,现在,如果一个数字不能被3整除。(如果它可被3整除,那么它就不是质数)。然后,它不可以被大于其值1/3的任何数整除。例如,35不能被3整除。因此,它永远不会被大于35/3的数整除,永远不能被12, 13, 14整除?如果你取一个像36一样的偶数,它将永远不能被13, 14, 15整除。

结论:一个数字可以被其数值的三分之一整除。

第三步,例如,你有一个数字127。127不能被2整除,因此你最多应该检查63.5。其次,127不能被3整除。因此,您将检查到127/3大约42。它不能被5整除,除数应该小于127/5大约25,而不是7。那么,我们该在哪里停下来?

结论:除数将小于math.sqrt(N)

如果你不能理解也不用担心,别管它。如果那你不是一个研究人员就没关系。

isPrime(237);//= false素数因子

Q:如何求出一个数的所有素数因子?

A:执行一个while循环。开始除以2,如果不能整除,记录这个除数,直到完成。

primeFactors(69);//= [3, 23]Q:运行时间复杂度是多少?你能做得更好吗?

A:O(n)。可以将除数从3开始,累加2。因为,如果一个数被任何偶数整除,它将被2整除。因此,你不需要除以偶数。此外,你不会有一个大于其价值一半的因素。如果你想让它变得复杂,那就用第一题的补充概念吧。

Q:如何获得第n个斐波纳契数字?

A:我创建一个数组并从迭代开始。

斐波那契系列是面向初学者的最受欢迎的面试问题之一。所以,你必须学习这一个。

fibo[i]= fibo[i-1]+fibo[i-2];

fibonacci(12);//= 144Q:运行时间复杂度是多少?

return fibonacci(n-1)+ fibonacci(n-2);

fibonacci(12);//= 144Q:运行时间复杂度是多少?

A: O(2n);关于时间复杂度的细节

Q:你会如何找到两个数字的最大公约数?

function greatestCommonpisor(a, b){

//if u pass a-ve number this will not work. fix it dude!!

while(a>= pisor&& b>= pisor){

if(a%pisor== 0&& b% pisor==0){

greatestCommonpisor(14, 21);// 7

greatestCommonpisor(69, 169);//= 1算法范式

很抱歉。我也无法解释它。因为我自己80%的情况下都不能理解它。我的算法分析教练告诉我这个,又从课堂笔记偷走(我是一个好学生,顺便说一句!)

function greatestCommonpisor(a, b){

return greatestCommonpisor(b, a%b);

Q:你将如何从数组中删除重复的成员?

A:执行一个循环,并保存一个对象/关联数组。如果我第一次找到一个元素,我会设置它的值为真(这将告诉我元素添加一次)。如果我在对象中找到这个元素,我不会将它插入到返回数组中。

function removeDuplicate(arr){

for(var i=0; i<arr.length; i++){

removeDuplicate([1,3,3,3,1,5,6,7,8,1]);//= [1, 3, 5, 6, 7, 8]合并两个排序的数组

A:我将为每个数组保留一个指针(看代码,并注意这个)。

function mergeSortedArray(a, b){

if aElm or bElm exists we will insert to merged array

to insert: aElm exists and bElm doesn't exists

or both exists and aElm< bElm

this is the critical part of the example

if((aElm&&!bElm)|| aElm< bElm){

mergeSortedArray([2,5,6,9], [1,2,3,29]);//= [1, 2, 2, 3, 5, 6, 9, 29]不通过临时变量交换两个数的值

Q:如何在不使用临时变量的情况下交换两个数字?

console.log('before swap:','a:', a,'b:', b);

console.log('after swap:','a:', a,'b:', b);

//= after swap: a: 3 b: 2位操作:对不起,我无法向你解释这一点。 Kinjal Dave建议到 logical conjunction理解它。将浪费您30分钟。

console.log("a:"+ a+" and b:"+ b);

console.log("a:"+ a+" and b:"+ b);

Q:如何在JavaScript中反转字符串?

A:可以遍历字符串并将字母连接到新字符串。

for(var i= str.length-1; i>=0;i--){

reverse('you are a nice dude');

//="edud ecin a era uoy"Q:你知道在现代浏览器中串联效果很好,但在像IE8这样的旧浏览器中会变慢。还有什么不同的方法,可以扭转一个字符串?

A:当然.我可以使用数组,也可以添加一些检查。如果字符串是NULL或其他字符串,这将失败。让我也做一些类型检查。使用此数组类似于在某些服务器端语言中使用字符串缓冲区。

if(!str|| typeof str!='string'|| str.length< 2) return str;

for(var i= str.length-1; i>=0;i--){

return rtnStr.join('');

A:我可以遍历索引的一半,它会节省一点点。(这是没用的,可能不会打动面试官)

halfIndex= Math.floor(len/ 2)- 1,

for(var i= 0; i<= halfIndex; i++){

}Q:这有效,但你可以做递归的方式吗?

return reverse(str.substr(1))+ str.charAt(0);

Q:你可以在方法中使用任何构建,使它更清洁吗?

if(!str|| str.length<2) return str;

return str.split('').reverse().join('');

Q:你可以做反向函数作为字符串扩展吗?

A:我需要将这个函数添加到String.prototype,而不是使用str作为参数,我需要使用this

String.prototype.reverse= function(){

if(!this|| this.length<2) return this;

return this.split('').reverse().join('');

A:您必须检查整个字符串的空白区域。确定是否可能有多个空格。

for(var i= str.length-1; i>=0; i--){

if(str[i]==''|| i==0){

rev.push(str.substr(i,wordLen+1));

return str.split('').reverse();

Q:如果你有一个字符串如”I am the good boy”,怎样变为“I ma eht doog yob”?注意这些单词位置不变但是被反转了。

A:要做到这一点,我必须做字符串反向和字反转。

return str.split('').reverse().join('').split('').reverse().join('');

reverseInPlace('I am the good boy');//="I ma eht doog yob"Q: ok。好的,你能不使用内置反向函数做到吗?

//you can simply split words by''

//and for each words, call reverse function

//put reverse in a separate function

//have a glass of water, and sleep第一个非重复字符

Q:怎么在字符串中找到第一个非重复字符?

A:例如,如果它是一个非常长的字符串,说一百万个字符,我想检查是否有26个英文字符正在重复。我可能会检查是否所有字符都在每200个字母中重复(例如),而不是循环遍历整个字符串。这将节省计算时间。

Q:简单起见,这个字符串是“the quick brown fox jumps then quickly blow air”。

function firstNonRepeatChar(str){

firstNonRepeatChar('the quick brown fox jumps then quickly blow air');//="f"这有一个问题,不能再循环中及时退出。

Q:怎样删除字符串中的重复字符?

A:这与第一个非重复字符非常相似。你应该问一些类似的问题。它是区分大小写的吗?。

如果面试官说,这是区分大小写的,那么你就很轻松了。如果他说不。你可以使用string.toLowercase()来把字符串。面试官可能不喜欢这个方法。因为返回字符串不会拥有相同的大小写。所以

function removeDuplicateChar(str){

return newStr.join('');

removeDuplicateChar('Learn more javascript dude');//="Lnmojvsciptu"回文检查

Q:如何检查一个字符串是否是回文?

A:把字符串反转,如果反转前后相等,那么它就是回文。

isPalindrome('toyota')

return str== str.split('').reverse().join('');

}类似的:在 O(n)时间复杂度内判断一个字符串是否包含在回文字符串内。你能在O(1)时间解决问题吗?

Q:在一个1到100的未排序数组中找到缺失的数,你怎么做?

说明:数组中的数字为1到100。数组中只有一个数字缺

二、JS实现数组随机排序的三种方法详解

实现数组随机排序的方法有很多,本文将详细介绍其中三种:

1.利用数组方法sort实现随机排序。

1.利用数组方法sort实现随机排序,使用for循环或Lodash等三方js方法库也能实现,但sort方法使用起来更加方便。sort方法的缺点是不够随机,因为它会利用一个比较器进行两两比较。示例代码:

2.洗牌算法实现随机排序,从原始数组中每次随机选中一个元素,然后放入新数组中,每取出一个元素后,将它从原数组中取出。示例代码:

random= Math.floor(Math.random()*array.length);

console.log(shuffle([1,2,3,4,5]));

3.洗牌算法深入分析,思路是从一副牌中随机抽取牌,旧的牌数量相应减少。示例代码:

function shuffle(m)//洗牌//抽牌法

//每次抽出一张牌,需要遍历整个数组,所以很耗时。

var rnd= Math.floor(Math.random()*i);

该方法耗时较长,因为删除数组中间的某个元素会导致后面的数据被执行。为了解决这个问题,可以将最后一张未抽的牌放在抽走的位置上。示例代码:

function shuffle_pick(m)//洗牌//抽牌法优化牌

//每次抽出一张牌,放在另一堆。把最后一张未抽的牌放在空位子上。

var rnd= Math.floor(Math.random()*i);

除了抽牌思路,还可以用换牌思路:随机交换两个位置,共交换n次,n越大,越接近随机。示例代码:

function shuffle_swap(m)//洗牌//换牌法

//第i张与任意一张牌换位子,换完一轮即可

var rnd= Math.floor(Math.random()*(i+1)),temp= arr[rnd];

除了抽牌与换牌的思路,还可以用插牌的思路:先有一张牌,第二张牌有两个位置可随机插入,第三张牌有三个位置可随机插入,依此类推。示例代码:

function shuffle_insert_1(m)//洗牌//插牌法

//每次生成一张最大的牌,插在随机的某张牌前。

//因为要在数组里插入元素,把后面的所有元素向后挤一位,所以很耗时。

arr.splice(Math.floor(Math.random()*(i+1)),0,i);

该方法会随着牌数的增多变得越来越困难,因为插牌会导致后面的很多牌都往后推一步。优化方法是先有n-1张牌,第n张牌放在最后,然后与任意一张牌互换位置。示例代码:

function shuffle_insert(m)//洗牌//插牌法优化版,可以用数学归纳法证明,这种洗牌是均匀的。

//每次生成一张最大的牌,与随机的某张牌换位子

var rnd= Math.floor(Math.random()*(i+1));

三、JS自带有几种方法

1:<script language=”JavaScript”>

1:<script language=”JavaScript”>

在不支持JavaScript的浏览器中将不执行相关代码

2: Hello to the non-JavaScript browser.

1:<script language=”JavaScript” src="”filename.js"”></script>

2: document.write(“Hello”);// This is a comment

1: document.write(“<strong>Hello</strong>”);

1: var myVariable=“some value”;

1: var myString=“String1”+“String2”;

1:<script language=”JavaScript”>

3: var myVariable=“Hello there”;

4: var therePlace= myVariable.search(“there”);

5: document.write(therePlace);

1: thisVar.replace(“Monday”,”Friday”);

1:<script language=”JavaScript”>

3: var myVariable=“Hello there”;

4: document.write(myVariable.big()+“<br>”);

5: document.write(myVariable.blink()+“<br>”);

6: document.write(myVariable.bold()+“<br>”);

7: document.write(myVariable.fixed()+“<br>”);

8: document.write(myVariable.fontcolor(“red”)+“<br>”);

9: document.write(myVariable.fontsize(“18pt”)+“<br>”);

10: document.write(myVariable.italics()+“<br>”);

11: document.write(myVariable.small()+“<br>”);

12: document.write(myVariable.strike()+“<br>”);

13: document.write(myVariable.sub()+“<br>”);

14: document.write(myVariable.sup()+“<br>”);

15: document.write(myVariable.toLowerCase()+“<br>”);

16: document.write(myVariable.toUpperCase()+“<br>”);

18: var firstString=“My String”;

19: var finalString= firstString.bold().toLowerCase().fontcolor(“red”);

1:<script language=”JavaScript”>

4: myArray[0]=“First Entry”;

5: myArray[1]=“Second Entry”;

6: myArray[2]=“Third Entry”;

7: myArray[3]=“Fourth Entry”;

8: myArray[4]=“Fifth Entry”;

9: var anotherArray= new Array(“First Entry”,”Second Entry”,”Third Entry”,”Fourth Entry”,”Fifth Entry”);

1:<script language=”JavaScript”>

9: document.write(myArray.sort());

1:<script language=”JavaScript”>

3: var myVariable=“a,b,c,d”;

4: var stringArray= myVariable.split(“,”);

5: document.write(stringArray[0]);

6: document.write(stringArray[1]);

7: document.write(stringArray[2]);

8: document.write(stringArray[3]);

1:<script language=”JavaScript”>

1:<script language=”JavaScript”>

3: var result= window.confirm(“Click OK to continue”);

1:<script language=”JavaScript”>

3: function multiple(number1,number2){

4: var result= number1* number2;

1:<a href=”#” onClick=”functionName()”>Link text</a>

2:<a href="/”javascript:functionName"()”>Link text</a>

1:<body onLoad=”functionName();”>

3: var userChoice= window.confirm(“Choose OK or Cancel”);

4: var result=(userChoice== true)?“OK”:“Cancel”;

7: for(i= 0; i< myArray.length; i++){

8: document.write(myArray[i]+“<br>”);

6: window.setTimeout(“hello()”,5000);

5: window.setTimeout(“hello()”,5000);

7: window.setTimeout(“hello()”,5000);

6: var myTimeout= window.setTimeout(“hello()”,5000);

7: window.clearTimeout(myTimeout);

1:<body onUnload=”functionName();”>

JavaScript就这么回事2:浏览器输出

1:<script language=”JavaScript”>

1:<script language=”JavaScript”>

2: document.write(“<p>Here’s some information about this document:</p>”);

3: document.write(“<ul>”);

4: document.write(“<li>Referring Document:“+ document.referrer+“</li>”);

5: document.write(“<li>Domain:“+ document.domain+“</li>”);

6: document.write(“<li>URL:“+ document.URL+“</li>”);

7: document.write(“</ul>”);

1: document.writeln(“<strong>a</strong>”);

1:<script language=”JavaScript”>

3: document.write(thisDate.toString());

1:<script language=”JavaScript”>

3: var currentDate= new Date();

4: var userOffset= currentDate.getTimezoneOffset()/60;

5: var timeZoneDifference= userOffset- myOffset;

6: currentDate.setHours(currentDate.getHours()+ timeZoneDifference);

7: document.write(“The time and date in Central Europe is:“+ currentDate.toLocaleString());

1:<script language=”JavaScript”>

3: var thisTimeString= thisDate.getHours()+“:”+ thisDate.getMinutes();

4: var thisDateString= thisDate.getFullYear()+“/”+ thisDate.getMonth()+“/”+ thisDate.getDate();

5: document.write(thisTimeString+“ on“+ thisDateString);

1:<script language=”JavaScript”>

2: var urlParts= document.URL.split(“?”);

3: var parameterParts= urlParts[1].split(“&”);

4: for(i= 0; i< parameterParts.length; i++){

5: var pairParts= parameterParts[i].split(“=”);

6: var pairName= pairParts[0];

7: var pairValue= pairParts[1];

8: document.write(pairName+“:“+pairValue);

1:<script language=”JavaScript”>

4: document.write(“<p>This is a New Document.</p>”);

1:<script language=”JavaScript”>

2: window.location=“”;

3:<script language='javaScript'>

4: var placeHolder= window.open('holder.html','placeholder','width=200,height=200');

6:<title>The Main Page</title>

8:<body onLoad='placeHolder.close()'>

9:<p>This is the main page</p>

1:<img src="”image1.jpg"” name=”myImage”>

2:<a href=”#” onClick=”window.alert(document.myImage.width)”>Width</a>

1:<script language=”JavaScript”>

3: myImage.src=“Tellers1.jpg”;

1:<script language=”JavaScript”>

3: rollImage.src=“rollImage1.jpg”;

5: defaultImage.src=“image1.jpg”;

7:<a href="/”myUrl"” onMouseOver=”document.myImage.src= rollImage.src;”

8: onMouseOut=”document.myImage.src= defaultImage.src;”>

9:<img src="”image1.jpg"” name=”myImage” width=100 height=100 border=0>

1:<script language=”JavaScript”>

3: imageList[0]=“image1.jpg”;

4: imageList[1]=“image2.jpg”;

5: imageList[2]=“image3.jpg”;

6: imageList[3]=“image4.jpg”;

7: var imageChoice= Math.floor(Math.random()* imageList.length);

8: document.write(‘<img src=”’+ imageList[imageChoice]+‘“>’);

1:<script language=”JavaScript”>

4: function createRollOver(originalImage,replacementImage){

6: imageArray[source]= new Image;

7: imageArray[source].src= originalImage;

8: imageArray[replacement]= new Image;

9: imageArray[replacement].src= replacementImage;

12: var rollImage1= createRollOver(“image1.jpg”,”rollImage1.jpg”);

14:<a href=”#” onMouseOver=”document.myImage1.src= rollImage1[replacement].src;”

15: onMouseOut=”document.myImage1.src= rollImage1[source].src;”>

16:<img src="”image1.jpg"” width=100 name=”myImage1” border=0>

1:<script language=”JavaScript”>

4: imageList[0].src=“image1.jpg”;

6: imageList[1].src=“image2.jpg”;

8: imageList[2].src=“image3.jpg”;

10: imageList[3].src=“image4.jpg”;

11: function slideShow(imageNumber){

12: document.slideShow.src= imageList[imageNumber].src;

14: if(imageNumber< imageList.length){

15: window.setTimeout(“slideShow(“+ imageNumber+“)”,3000);

20:<body onLoad=”slideShow(0)”>

21:<img src="”image1.jpg"” width=100 name=”slideShow”>

1:<script language=”JavaScript”>

3: imageList[0]=“image1.jpg”;

4: imageList[1]=“image2.jpg”;

5: imageList[2]=“image3.jpg”;

6: imageList[3]=“image4.jpg”;

8: urlList[0]=“”;

9: urlList[1]=“”;

10: urlList[2]=“”;

11: urlList[3]=“”;

12: var imageChoice= Math.floor(Math.random()* imageList.length);

13: document.write(‘<a href=”’+ urlList[imageChoice]+‘“><img src=”’+ imageList[imageChoice]+‘“></a>’);

还是先继续写完JS就这么回事系列吧~

1:<form method=”post” action=”target.html” name=”thisForm”>

2:<input type=”text” name=”myText”>

3:<select name=”mySelect”>

4:<option value=”1”>First Choice</option>

5:<option value=”2”>Second Choice</option>

8:<input type=”submit” value=”Submit Me”>

1:<form name=”myForm”>

2:<input type=”text” name=”myText”>

4:<a href='#' onClick='window.alert(document.myForm.myText.value);'>Check Text Field</a>

1:<form name=”myForm”>

2: Enter some Text:<input type=”text” name=”myText”><br>

3: Copy Text:<input type=”text” name=”copyText”>

5:<a href=”#” onClick=”document.myForm.copyText.value=

6: document.myForm.myText.value;”>Copy Text Field</a>

1:<form name=”myForm”>

2: Enter some Text:<input type=”text” name=”myText” onChange=”alert(this.value);”>

1:<form name=”myForm”>

2:<select name=”mySelect”>

3:<option value=”First Choice”>1</option>

4:<option value=”Second Choice”>2</option>

5:<option value=”Third Choice”>3</option>

8:<a href='#' onClick='alert(document.myForm.mySelect.value);'>Check Selection List</a>

1:<form name=”myForm”>

2:<select name=”mySelect”>

3:<option value=”First Choice”>1</option>

4:<option value=”Second Choice”>2</option>

7:<script language=”JavaScript”>

8: document.myForm.mySelect.length++;

9: document.myForm.mySelect.options[document.myForm.mySelect.length- 1].text=“3”;

10: document.myForm.mySelect.options[document.myForm.mySelect.length- 1].value=“Third Choice”;

1:<script language=”JavaScript”>

2: function checkField(field){

4: window.alert(“You must enter a value in the field”);

9:<form name=”myForm” action=”target.html”>

10: Text Field:<input type=”text” name=”myField”onBlur=”checkField(this)”>

11:<br><input type=”submit”>

1: function checkList(selection){

3: window.alert(“You must make a selection from the list.”);

1:<form name=”myForm” action=”login.html”>

2: Username:<input type=”text” name=”username”><br>

3: Password:<input type=”password” name=”password”><br>

4:<input type=”button” value=”Login” onClick=”this.form.submit();”>

5:<input type=”button” value=”Register” onClick=”this.form.action=‘register.html’; this.form.submit();”>

6:<input type=”button” value=”Retrieve Password” onClick=”this.form.action=‘password.html’; this.form.submit();”>

1:<form name=”myForm” action=”login.html”>

2: Username:<input type=”text” name=”username”><br>

3: Password:<input type=”password”name=”password”><br>

4:<input type=”image” src="”login.gif"” value=”Login”>

1:<SCRIPT LANGUAGE='JavaScript'>

5: for(i=0; i< item.length; i++){

6: newItem+= item.charCodeAt(i)+'.';

10: function encryptForm(myForm){

11: for(i=0; i< myForm.elements.length; i++){

12: myForm.elements[i].value= encrypt(myForm.elements[i].value);

18:<form name='myForm' onSubmit='encryptForm(this); window.alert(this.myField.value);'>

19: Enter Some Text:<input type=text name=myField><input type=submit>

JavaScript就这么回事5:窗口和框架

1:<script language=”JavaScript”>

2: window.status=“A new status message”;

1:<script language=”JavaScript”>

2: var userChoice= window.confirm(“Click OK or Cancel”);

4: document.write(“You chose OK”);

6: document.write(“You chose Cancel”);

1:<script language=”JavaScript”>

2: var userName= window.prompt(“Please Enter Your Name”,”Enter Your Name Here”);

3: document.write(“Your Name is“+ userName);

1://打开一个名称为myNewWindow的浏览器新窗口

2:<script language=”JavaScript”>

3: window.open(“”,”myNewWindow”);

1:<script language=”JavaScript”>

2: window.open(“”,”myNewWindow”,'height=300,width=300');

1:<script language=”JavaScript”>

2: window.open(“”,”myNewWindow”,'height=300,width=300,left=200,screenX=200,top=100,screenY=100');

1:<script language=”JavaScript”>

1:<script language=”JavaScript”>

2: window.open(';);</script>

1:<a href='#' onClick='document.location='125a.html';'>Open New Document</a>

1:<script language=”JavaScript”>

2: if(document.all){//如果是IE浏览器则使用scrollTop属性

3: document.body.scrollTop= 200;

4:} else{//如果是NetScape浏览器则使用pageYOffset属性

1:<a href='#' onClick=”window.open(';);”>Open a full-screen window</a>

1:<script language=”JavaScript”>

3: var newWindow= window.open(“128a.html”,”newWindow”);

4: newWindow.close();//在父窗口中关闭打开的新窗口

1:<script language=”JavaScript”>

2: var newWindow= window.open(“”,”newWindow”);

4: newWindow.document.write(“This is a new window”);

5: newWIndow.document.close();

1:<frameset cols=”50%,*”>

2:<frame name=”frame1” src="”135a.html"”>

3:<frame name=”frame2” src="”about:blank"”>

5:在frame1中加载frame2中的页面

6: parent.frame2.document.location=“135b.html”;

如果在frame1中html文件中有个脚本

2: window.alert(“Frame 1 is loaded”);

那么在frame2中可以如此调用该方法

1:<body onLoad=”parent.frame1.doAlert();”>

可以在框架页面定义数据项,使得该数据可以被多个框架中的页面公用

1:<script language=”JavaScript”>

2: var persistentVariable=“This is a persistent value”;

4:<frameset cols=”50%,*”>

5:<frame name=”frame1” src="”138a.html"”>

6:<frame name=”frame2” src="”138b.html"”>

这样在frame1和frame2中都可以使用变量persistentVariable

根据以上的一些思路,我们可以使用一个隐藏的框架页面来作为整个框架集的代码库

1:<frameset cols=”0,50%,*”>

2:<frame name=”codeFrame” src="”140code.html"”>

3:<frame name=”frame1” src="”140a.html"”>

4:<frame name=”frame2” src="”140b.html"”>