文档章节

网络上一些javascript 题目

校友君
 校友君
发布于 2014/05/29 22:45
字数 2062
阅读 41
收藏 0
点赞 0
评论 0

1、判断字符串是否是这样组成的,第一个必须是字母,后面可以为数字、下划线、总长度5-20;

答:

var str = "string39_string";
var regexp = /^[a-z][\d_]{4,19}/gi;
alert(regexp.test(str));

2、截取字符串abcdefg的efg

答:

  var str = "abcdefg";
  var str2 = str.substring(str.indexOf("efg"));
  alert(str2);

3、判断一个字符串中出现次数最多的字符,统计这个次数

4、编写一个方法,求一个字符串的字节长度

答:(1)charCodeAt()方法与charAt()方法类似,但它并不返回指定位置上的字符本身,而是返回该字符在Unicode字符集中的编码值。计算机只能理解数字,对于计算机来说,所有字符串都是某种编码的数字。当需要使用的是数字编码所代表的字符,而不是使用数字本身时,计算机将根据编码与字符集的内部对应关系,把每一个编码转换为字符集中相应的字符。

(2)为什么要>255:Unicode编码中前256个字符(包括,大小写字母、数字、少数特殊字符:如标点符号、货币符号等),即0~255的字符只占1个字节,其他的字符,如汉字、日文等,占2个字节。

function much(str) {
 var count = 0;
 if (str!=null) {
  for (var i=0;i<str.length;i++) {
   if (str.charCodeAt(i)>255) {
    count += 2;   
   } else {
    count ++;    
   }
  }
  
 } else {
  return;
 }
 console.log(count);
}
much("123aB我们");

 

5、编写一个方法,去掉一个数组的重复元素

6、网页中实现一个计算当年还剩多少时间的倒数计时程序。要求网页上实时动态显示“xx年还剩xx天xx时xx分xx秒”

答: 年份4位数字,月份表示:0-11,日期表示:1-31,小时表示:0-23;

function show() {
 var date1 = new Date();
 var year = date1.getFullYear();
 var date2 = new Date(year+1,0,1,0,0,0);  //2015.01.01. 00:00
 var time = (date2-date1)/1000;           //得到相差的秒数,毫秒/1000   
 var date = Math.floor(time/(24*60*60));
 var hours = Math.floor(time%(24*60*60)/(60*60));
 var minutes = Math.floor(time%(24*60*60)%(60*60)/60);
 var seconds = Math.floor(time%(24*60*60)%(60*60)%60);
 var str = year + "年还剩" + date + "天" + hours + "时" + minutes + "分" + seconds + "秒"; 
 var ainput = document.getElementById("input");
 ainput.value = str;
 //console.log(date2);
} 
window.setInterval(show,1000);

7、js中如何检测一个变量是一个string类型:

答:

另: instanceof 方法用于识别正在处理的对象的类型,主要是要求开发者明确对象为某特定类型。

var object1 = new String("Hello world");
alert(object1 instanceof String);  //true
var str1 = "string1";
var str2 = new String("string2");
function test (str) {
 return (typeof str == "string" || str.construtor == String );
}
alert(test(str1));  //true
aler(test(str2));   //false
alert(typeof str2); //object

8、鼠标点击页面中的任意标签,alert出该标签的名称(注意兼容性)

答:nodeName,或者用,tagName

window.onclick = function (e) {
 var e = e || window.event;
 var target = e.srcElement || e.target;
 var name = target.nodeName.toLowerCase();
 alert(name);
}

9、js几种基本数据类型;

答:简单:Undefined、Number、String、Blooean、Object。 

复合:Object,Array,Function

10、js的基础对象有哪些,window和document的常用方法和属性列出来;

答:根据《javascript高级程序设计》

js基本对象:String、Number 、Boolean、 Function、 Array、 Math 、Date 等。

window:

属性:status、defaultStatus、innerWidth、innerHeight

方法:alert()、confirm()、prompt()、open()、close()、go()、formard()、back()、setTimeout()、clearTimeout()、setInterval()、clearInterval()

document:

属性:cookie、nodeType、documentElement、URL

方法:getElementById()、getElementsByTagName()、getElementsByName()、createElement()、createTextNode()、

11、document.write() 和 innerHTML 的区别:

执行document.write()后,页面都将重绘,若多次调用的话,前面的会被修改。

innerHTML只会重绘html里的一部分。

12、如何控制alert中的换行
答: \n      alert("aa\nbb");

13、下面css标签在js中调用应如何拼写:border-left-color,-moz-viewport;
答:borderLeftColor,mozViewport
在IE或DOM中获取样式表中的样式obj.currentStyle.backgroundColor;document.getComputedStyle(obj,null).backgroundColor;

14、如何显示/隐藏一个DOM元素;

答:el.style.display ="block";
el.style.display ="none";

obj.style.visibility = "visibile";
obj.style.visibility = "hidden"; (另它仅仅是隐藏元素,以留下一个元素所占区域的空白)

15、规避js多人开发函数重名问题:
答:可以开发前规定命名规范,根据不同开发人员开发的功能在函数前加前缀;
将每个开发人员的函数封装到类中,调用的时候就调用的时候就调用类的函数,即使函数重名只要类名不重复就行;

16、如何添加html元素的事件,有几种方法;

答:
(1) 为 HTML 元素的事件属性赋值 <div style="width:100px;" onclick="alert()" ></div>;
(2) 在js中使用 ele.oncolick=function(){}
(3) 使用添加事件的方法 addEventListener(DOM兼容的浏览器) 或 attachEvent(IE);

17、js中如何定义class,如何扩展prototype?
答:在javascript中class用className表示,object.className来对html中class进行访问。
MyObject.prototype.show = function () { alert(); }
为原型扩展一个叫做show的方法,new MyObject().show();调用这个方法.

18、Firefox下面如何实现outerHTML;

  window.onload = function () {
   var innerdiv = document.getElementById("inner");
   var ospan = document.createElement("span");
   var op = document.createElement("p");
   var oText = document.createTextNode("Hello world!");
   ospan.appendChild(oText);
   op.appendChild(ospan);
   innerdiv.appendChild(op);
   console.log(innerdiv);
  }

19、补充代码,鼠标单击Button1后将Button1移动到Button2的后面<div> <input type=”button” id =”button1″ value=”1″ onclick=”???”> <input type=”button” id =”button2″ value=”2″ /”> </div>;

答:

 <script type="text/javascript">
  function change() {
   var div = document.getElementsByTagName("div")[0];
   var button1 = document.getElementById("button1");
   var button2 = document.getElementById("button2");
   button2.parentNode.appendChild(button1);
  }
 </script>
 </head> 
 <body> 
  <div> 
   <input type="button" id ="button1" value="1" onclick="change()"> 
   <input type="button" id ="button2" value="2" /> 
  </div>
 </body>

 20、写出异步加载js方案;

答:目前有5中方案;

(1)(不推荐使用)<script>标签里的属性 async=“async”;

HTML5中新增加的属性:async。async 属性规定一旦脚本可用,则会异步执行。注:async 属性仅适用于外部脚本(只有在使用 src 属性时)。

<script type="text/javascript" src="demo_async.js" async="async"></script>

测试结果:显示顺序1 2 3;

<!DOCTYPE html> 
<html> 
 <head>  
  <title>async</title>
  <script type="text/javascript" src="async.js" async="async"></script>
  <script type="text/javascript">
   console.log(1);   
  </script>
  <script type="text/javascript">
   window.onload = function () {
    var div1 = document.getElementById("div1");
     if (div1!=null){
     console.log(3);
     }
   }
   
  </script>
 </head> 
 <body> 
  <div id="div1">
   <p>async test<p>
  </div>
 </body> 
</html>

async.js  :

console.log(2);

(2)(不推荐使用)<script>标签里的属性 defer=“defer”;

defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。只有 IE 支持 defer 属性。

<script type="text/javascript" defer="defer">

测试结果:本人发现没有影响,虽然在IE下测试的。还是把代码贴出来,是不是代码太简单或者有错误。

<!DOCTYPE html> 
<html> 
 <head>  
  <script type="text/javascript" dafer="defer">
   alert(2);
  </script>
  <script type="text/javascript">
   alert(1);   
  </script>
 </head> 
 <body> 
  <div id="div1">
   <p>async test<p>
  </div>
 </body> 
</html

(3)动态创建<script>标签

   (function () {
    var ss = document.createElement("script");
    ss.type = "text/javascript";
    ss.src = "http://code.jquery.com/jquery-1.7.2.min.js";
    var ss2 = document.getElementsByTagName("script")[0];
    ss2.parentNode.insertBefore(ss,ss2);
   })();

测试结果:先显示1然后2

<!DOCTYPE html> 
<html> 
 <head>  
  <title>async</title>
  <script type="text/javascript">
   (function () {
    var ss = document.createElement("script");
    ss.type = "text/javascript";
    ss.src = "async.js";
    var aScript = document.getElementsByTagName("script")[0];
    aScript.parentNode.insertBefore(ss,aScript);
    })();
   
  </script>
  <script type="text/javascript">
   console.log(1);   
  </script>
 </head> 
 <body> 
  <div id="div1">
   <p>async test<p>
  </div>
 </body> 
</html>

(4)把javascript的script标签放到body标签之后。

(5)ajax

见: www.w3school.com

jQuery下的Ajax

<script type="text/javascript" src="jquery-1/10/1.js"></script>
<script type="text/javascript">
    $(function () {
        $("input").click(function () {
            $.getScript("1234.js");
        });
    
    })
</script> 
<boby>
    <input type="button" value="button" />
</body>

1234.js  在服务器端的文件:

alert("response");

    网页加载好了后,1234.js的文件不会自动加载,等你点击input的按钮后才会加载1234.js文件。

(6)iframe

详见: http://hi.baidu.com/flondon/item/1ca3cacb4cb6c90aad092f97

21.关键字this的用法;
(1)在对象方法中,关键this总是指向调用该方法的对象。
var oCar = new Object;
oCar.color = "red";
oCar.showColor = function () {
 alert(this.color);    // outputs "red"
};
这里,关键字this用在对象的showColor()方法中。在此环境中,this等于对象oCar。
(同样在event对象的上下文中,this指代的是event对象。
oEvent.preventDefault = function () {
 this.returnvalue = false;
}
)
(2)在构造函数中
function Car (sColor, iDoors, iMpg) {
 this.color = sColor;
 this.doors = iDoors;
 this.mpg = iMpg;
 this.showColor = function () {
  alert(this.color);
 };
}
var oCar1 = new Car("red",4,23);
var oCar2 = new Car("blue",3,25);
在构造函数内部无创建对象,而是使用this关键字。使用new运算符调用构造函数时,在执行第一行代码前先创建一个对象,只有用this才能访问该对象。
(3)在HTML元素中的属性事件。可用this对象来访问事件对象。
<img src="image1.gif" onmouseover="this.src='image2.gif'" onmouseout="this.src='image1.gif'" />
(4)css expression 中使用this关键字。
注意:css中使用expression只有IE浏览器才能识别。IE5及以后的版本支持。
<style type="text/css">
input {
 star : expression(onmouseover=function(){
  this.style.backgroundColor="#FF0000"
  },
  onmouseout=function(){
   this.style.backgroundColor="#FFFFFF"
 })
}
</style>

© 著作权归作者所有

共有 人打赏支持
校友君
粉丝 3
博文 5
码字总数 5151
作品 0
广州
浅谈JavaScript中的继承

近期,公司的业务处于上升期,对人才的需求似乎比以往任何时候都多。作为公司的前端,有幸窥探到了公司的前端面试题目,其中有一题大概是这样的(别激动,题目已经改了) 请用你自己的方式来...

lanzhiheng ⋅ 05/29 ⋅ 0

chrome浏览器中 F12 功能的简单介绍

由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首先介绍Chrome开发者工具中,调...

m0_37724356 ⋅ 04/10 ⋅ 0

WebAssembly 时代,Rust 也想成为 Web 语言

目前 Mozilla 正在基于 WebAssembly 可移植代码格式研发 JavaScript 和 Rust 之间的桥梁——wasm-bindgen,意义是提高 JavaScript 和 Rust 之间的互操作性。Mozilla 这么做是想让 Rust 成为类...

开源中国 ⋅ 04/10 ⋅ 0

高手问答第 199 期 — 不仅是前端,你还可以用 JavaScript 来构建物联网

OSCHINA 本期高手问答(2018 年 5 月 29 日 — 6 月 4 日)我们邀请到了李知周老师@李知周 和大家就关于使用 JavaScript 构建物联网方面的问题进行讨论。 李知周,曾在国际知名投资银行从事基于...

局长 ⋅ 05/28 ⋅ 0

爬虫获取 js 动态数据 (1)

爬虫遇到 js 动态数据时,主要解决方法有两种: 使用一些库,例如 Selenium,来模拟浏览器环境抓取数据。但这样做对内存和 CPU 的消耗都比较大,爬虫效率低,应尽量避免。 手动分析 js 请求,...

anye137 ⋅ 06/05 ⋅ 0

JS对URL字符串进行编码/解码分析

一、为什么要进行js编码和解码? 只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。 出现的情况: 网址路径中包含汉字...

qq_38055050 ⋅ 05/12 ⋅ 0

App 遭苹果下架,只因名称使用了甲骨文商标 JavaScript

苹果公司在信中提到,该 iTunes App 的卖家未经甲骨文公司的授权,却明显地显示 JavaScript 字样,这种未经授权而使用甲骨文公司的知识产权已经构成侵权行为。 有开发者在网络论坛 reddit 的...

局长 ⋅ 04/19 ⋅ 0

Android中使用WebView

现在很多移动端的应用,大多数都采用混合开发,也就是安卓原生控件加上我们的html代码 当然,要使用html的东西,android提供了一个控件,也就是WebView 那我们一起来看看WebView的使用吧 首先...

月夜中徘徊 ⋅ 05/15 ⋅ 0

[译] JavaScript 是如何工作的:对比 WebAssembly + 为什么在某些场景下它比 JavaScript 更合适

原文地址:How JavaScript works: A comparison with WebAssembly + why in certain cases it’s better to use it over JavaScript 原文作者:Alexander Zlatkov 译文出自:掘金翻译计划 本......

stormluke ⋅ 05/23 ⋅ 0

安卓应用安全指南 4.9 使用`WebView`

4.9 使用 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 使你的应用能够集成 HTML / JavaScript 内容。 4.9.1 示例代码 我们需要采取...

apachecn_飞龙 ⋅ 03/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

2018上海云栖大会workshop-日志数据采集与分析对接

摘要: 日志数据采集与分析对接 课程描述 通过日志服务采集用户、数据库、业务等访问数据。演示对于业务日志分析与处理,程序日志查询与监控,打通日志与数据仓库对接案例。 日志种类 网站访...

猫耳m ⋅ 29分钟前 ⋅ 0

SpringMVC中的ContentNegotiatingViewResolver配置

pom.xml <properties><commons-lang.version>2.6</commons-lang.version><slf4j.version>1.7.6</slf4j.version><spring.version>4.1.3.RELEASE</spring.version> <jack......

颖伙虫 ⋅ 31分钟前 ⋅ 0

Spring Boot 2.0正式发布,升还是不升呢?

Spring几乎是每一位Java开发人员都耳熟能详的开发框架,不论您是一名初出茅庐的程序员还是经验丰富的老司机,都会对其有一定的了解或使用经验。在现代企业级应用架构中,Spring技术栈几乎成为...

java高级架构牛人 ⋅ 32分钟前 ⋅ 0

打包时隐藏打印日志

1.打包时不允许项目中有打印的日志,可以在pch中加入下面这段代码即可 #ifdef DEBUG# define Log(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA...

小黑202 ⋅ 33分钟前 ⋅ 0

SSL双向认证的实现

环境 系统:archlinux/centOS nginx:nginx/1.12.2 浏览器:火狐firefox 前提:1.安装nginx。    2.安装openssl。 生成证书 新建工作目录  首先建立一个工作目录,这里以我的工作目录为例...

颖辉小居 ⋅ 39分钟前 ⋅ 0

vscode 代码格式化,语法检查插件ESLint+Prettier

ESLint+Prettier prettier只关注格式化 ,插件prettier-vscode,编辑器的配置setting.json会出现prettier插件的相关配置节点,同时也能看到一些默认的配置信息。 安装成功后,编辑器默认的格式...

momo1987 ⋅ 41分钟前 ⋅ 0

使用TinyProxy搭建代理服务器

什么是TinyProxy 它是一个代理服务器,用来实现http或https代理,windows系统一直在用ccproxy, 非windows系统,怎么开放个http代理呢?那就是TinyProxy。 安装 直接执行命令即可 sudo apt-g...

bengozhong ⋅ 41分钟前 ⋅ 0

掌握需求过程

1,需求必须可度量、可测试 2,需求是什么? 功能需求 非功能需求 限制条件 3,Volere需求过程 采用Volere需求过程,最好采用RUP,增量,迭代,螺旋,Scrum或其他类似的迭代式开发过程 (注意...

霜叶情 ⋅ 46分钟前 ⋅ 0

分布式微服务云架构开发Web应用

举一个简单的例子,在快速入门工程的基础上,举一个简单的示例来通过Thymeleaf渲染一个页面。 @Controller public class HelloController { @RequestMapping("/") pub...

明理萝 ⋅ 47分钟前 ⋅ 0

图应用之关键路径(Critical Path)

之前我们介绍过,在一个工程中我们关心两个问题: (1)工程是否顺利进行 (2)整个工程最短时间。 之前我们优先关心的是顶点(AOV),同样我们也可以优先关心边(同理有AOE)。(Activity ...

临江仙卜算子 ⋅ 48分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部