0,截取字符串abcdefg中的efg
var str = 'abcdefg'; alert(str.substr(4,3));
1,js有哪些数据类型,数据类型的判断函数?
String,Number,Boolean,Null,Undefined,Object
判断函数有:typeof,instanceof,constructor,prototype
接下来我们一一对这些进行举例子。
var a = 'nihao'; var b = 222; var c = [1,2,3]; var d = new Date(); var e = function(){alert('hanshu');}; var f = function(){this.name = 'hanmeimei'}; alert(typeof a);//string alert(typeof a == String);// false alert(typeof b);// number alert(typeof c);// object alert(typeof d);// object alert(typeof e);// function alert(typeof f);// function alert(c instanceof Array);//true alert(e instanceof Function);//true alert(c.constructor === Array);//true function A(){}; function B(){}; A.prototype = new B(); //A继承自B注意: constructor 在类继承时会出错 var aObj = new A(); alert(aObj.constructor === B);// -----------> true; alert(aObj.constructor === A);// -----------> false; //而instanceof方法不会出现该问题,对象直接继承和间接继承的都会报true: alert(aObj instanceof B); //----------------> true; alert(aObj instanceof A); //----------------> true; //解决construtor的问题通常是让对象的constructor手动指向自己: aObj.constructor = A;//将自己的类赋值给对象的constructor属性 alert(aObj.constructor === B);// -----------> flase; alert(aObj.constructor === A);//true //prototype alert(Object.prototype.toString.call(a) === '[object String]');//true; alert(Object.prototype.toString.call(b) === '[object Number]');//true; alert(Object.prototype.toString.call(c) === '[object Array]');//true; alert(Object.prototype.toString.call(d) === '[object Date]');//true; alert(Object.prototype.toString.call(e) === '[object Function]');//true; alert(Object.prototype.toString.call(f) === '[object Function]');//true;
2,编写一个js函数,时时显示当前时间,格式:“年-月-日 时:分:秒”
function nowtime(){ var nowDate = new Date(); var year = nowDate.getFullYear(); var month = nowDate.getMonth() + 1; var day = nowDate.getDate(); var hours = nowDate.getHours(); var minutes = nowDate.getMinutes(); var second = nowDate.getSeconds(); return year + '-' + month + '-' + day +' '+hours+':'+minutes +':'+second; } alert(nowtime());
3,显示隐藏dom元素
使用jquery
$(function(){ $("#div").show(); $("#div").hide(); });
4,如果添加HTML元素的事件处理,几种方法
a,直接元素中添加:
<a href="###" onclick="fn();" >click</a>
b,找到dom节点如:
var ob = document.getElementById("div"); ob.onclick = function(){};
c,使用jquery添加静态的dom节点的事件
$("#div").click(function(){}); //动态生成的节点的话: $("#div").on("click",function(){}); $("#div").live("click",function(){});
5,如何控制alert中的换行
alert('nihao\nnihao');或者 alert('nihao'+'\n'+'nihao');
6,判断字符串中出现次数最多的字符,统计这个次数。
//判断一个字符串中出现次数最多的字符,统计这个次数 //方法一 var str="aabbb"; var obj={}; for(var i=0,k;i<str.length;i++){ k=str.charAt(i);//charAt() 方法可返回指定位置的字符。 if(obj[k]){ obj[k]++; }else{ obj[k]=1; } } var m=0; var i=null; for(var k in obj){ if(obj[k]>m){ m=obj[k]; i=k; } } alert(i+':'+m); //方法二 var str ="aaaaaaaaaaabbb"; for(var i=0,len=0,temp="";i<str.length; i++){ var s=str.substr(i,1);//substr()方法可在字符串中抽取从 start 下标开始的指定数目的字符。 var tt=str.split(s);//split()方法用于把一个字符串分割成字符串数组。 if(tt.length>len){ len=tt.length; temp=s+"出现最多次数为"+len; } } alert(temp);
7,判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母,数字,下划线,总长度为5-20
有两种方案,一种是传统的遍历每个字符来判断,这种会比较麻烦。另一种是用正则来判断比较方便。
下面是正则的例子
//判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20 var str = 'abcdefg'; var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/; alert(reg.test(str));
8,写一个字符串转成驼峰的方法:
如:border-bottom-color 》 borderBottomColor
这个也是有两种方法,一种是传统的和一种正则表达式
var str = "border-bottom-color"; function test(str){ var arr = str.split("-");//用split()函数来进行分割字符串arr里面包括【border,bottom,color】 for(var i=1;i<arr.length;i++){//从数组的第二项开始循环,charAt(0)找到第一个字母。substring(1)截掉第一个字母。 arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);//循环之后把得到的字符赋给arr。【border,Bottom, Color】 alert(arr[i]); } return arr.join("");//用join方法来拼接,空拼接。就变成borderBottomColor } alert(test(str));
var str = "border-bottom-color"; function test(str){ var re = /-(\w)/g;//通过正则找到-b -c。默认的是匹配一次,所以要用g来全局匹配。\w指的字符。找一个-找一个字符。replace替换就是B替换-b C替换-c。 $0代表正则,$1代表指向 return str.replace(re, function($0,$1){ return $1.toUpperCase(); }); } alert(test(str));
9,请编写一个javascript函数parseQueryString,他的用途是把URL参数解析为一个对象,如:
var url=“http:witmax,cn/index.php?key0=0&key1=1&key2=2”;
function parseQueryString(url) { var json = {}; var arr = url.substr(url.indexOf('?') + 1,url.length).split('&'); arr.forEach(function(item) { var tmp = item.split('='); json[tmp[0]] = tmp[1]; }) return json; } //或者 function parseQueryString(url) { var obj={}; var keyvalue=[]; var key="",value=""; var paraString=url.substring(url.indexOf("?")+1,url.length).split("&"); for(var i in paraString){ keyvalue=paraString[i].split("="); key=keyvalue[0]; value=keyvalue[1]; obj[key]=value; } return obj; } var url = "http://witmax.cn/index.php?key0=0&key1=1&key2=2"; var json = parseQueryString(url); console.log(json);
很多题目未完待续
相关推荐
根据给定的文件信息,以下是对每一道JS面试题的知识点进行详细解析: ### 第一题:编写一个方法求一个字符串的字节长度 #### 解析: 在这道题目中,我们需要编写一个函数来计算字符串的字节长度。这里的重点在于...
面试题集合通常包含各种问题,旨在考察候选人在JS基础、jQuery库以及Ajax技术方面的理解和应用能力。现在,让我们深入探讨这些关键知识点。 1. **JavaScript基础**: - 变量与数据类型:了解`var`, `let`, `const`...
3. **JS面试题**: JavaScript是前端开发的基础,面试中会涉及到语言特性、数据类型、作用域、闭包、原型链、异步编程(回调、Promise、async/await)、事件循环、错误处理等。 4. **HTTP面试题**: 理解HTTP协议...
│ Java面试题41.jQuery中Ajax和原生js实现Ajax的关系.mp4 │ Java面试题42.简单说一下html5.mp4 │ Java面试题43.简单说一下css3.mp4 │ Java面试题44.bootstrap的是什么.mp4 │ Java面试题45.什么是框架.mp4 │ ...
覆盖范围:(40个VUE3.0面试题PDF、CSS面试题、JS面试题、REACT面试题 全栈面试题、小程序面试题、性能优化) # 前端面试题 非常重要 难度都是根据自己学习情况掌握的。 - 不能只靠背面试题 要去理解 面试题背后的...
Vue.js的面试题涉及到多个方面,包括路由管理、状态管理、组件通信、指令使用等,这些都是Vue.js应用开发的核心知识点。 首先,Vue.js中关于路由管理的面试题,可能会涉及路由守卫的使用。比如beforeEach和after...
### Vue.js 面试题知识点详解 #### 一、MVVM 概念与 Vue.js 架构 **1. 对于 MVVM 的理解** MVVM(Model-View-ViewModel)是一种软件架构设计模式,主要应用于简化用户界面的开发。在 Vue.js 中,这种模式得到了...
Vue.js面试题大全 Vue.js是一款流行的前端框架,具有强大的数据绑定能力和灵活的组件化开发模式。以下是Vue.js面试题大全的摘要信息: 1. Vue的基本原理 当一个Vue实例创建时,Vue会遍历data中的属性,并使用...
### PHP程序员常用简单面试题详解 #### 一、用PHP打印出前一天的时间,格式是2017-5-29 22:21:21 **知识点**: PHP日期时间处理 - **实现方法**: ```php $yesterday = date('Y-m-d H:i:s', strtotime('-1 day'));...
总之,JS基础知识广泛且深入,面试题往往围绕这些核心概念出题。在准备面试的过程中,建议应聘者不仅要牢记概念,更要多写代码,多思考如何将理论应用于实际开发中。这不仅有助于面试,更是提高自身技能的必要过程。
这份"前端面试题汇总"包含了许多关键领域的知识点,从基础到高级,涵盖了前端开发者必须熟悉的各项技能。 首先,HTML(超文本标记语言)是构建网页的基础,它定义了页面的结构。在面试中,可能会被问到关于HTML语义...
前端大厂最新面试题-JS面试题 (JS相关) 1. 数组转成字符串的方式: 在 JavaScript 中,数组可以通过两种方式转换为字符串: (1)使用 toString() 方法:例如 `var arr = [1,2,3]; arr.toString() == '1,2,3';` ...
Vue面试题通常涵盖Vue的核心概念,如组件系统、响应式原理、指令、过滤器、生命周期钩子函数以及Vue Router和Vuex等。Vue.js是一个流行的前端框架,它提供了声明式渲染,使得数据绑定和事件处理变得简单。Vue的响应...
"React.js 面试题整理" React.js 是一个流行的前端框架,它提供了一种declarative编程模型,可以帮助开发者构建快速、可维护的用户界面。以下是React.js相关知识点的总结: 1. React 事件机制 React并不是将click...
Java面试题41.jQuery中Ajax和原生js实现Ajax的关系 Java面试题42.简单说一下html5 Java面试题43.简单说一下css3 Java面试题44.bootstrap的是什么 Java面试题45.什么是框架 Java面试题46.简单介绍一下MVC模式 Java...
### JavaScript 面试知识点详解 #### 一、HTML 和 CSS **1、你做的页面在哪些浏览器测试过?这些浏览器的内核分别是什么?** - **Chrome**: 使用 Blink 渲染引擎。 - **Firefox**: 使用 Gecko 渲染引擎。 - **...
### JavaScript 最新面试题2023年,常见面试题及答案汇总 #### 1、Node.js的应用场景 - **特点:** - **运行环境:** Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 - **依赖:** 依赖 Chrome V8 ...
微信小程序面试题知识点总结 微信小程序基础知识: 1. 微信小程序有三个必备文件:app.json、app.js、app.wxss。app.json 是整个小程序的全局配置文件,app.js 是小程序的入口文件,app.wxss 是小程序的全局样式...
Vue面试题知识点总结 以下是根据提供的文件信息生成的知识点总结: 1. Vue 基础 * Vue 实例创建时,Vue 会遍历 data 中的属性,使用 Object.defineProperty(Vue 3.0 使用 proxy)将它们转换为 getter/setter,...