2022最全最新前端面试题(附加解答)
2022最全最新前端面试题(附加解答)
JS
1、说一下innerHTML 与 innerText的作用与区别?
作用:都可以获取或者设置元素的内容
区别:innerHTML可以解析内容中的html标签
innerText不能解析内容中的html标签
2、JavaScript 由以下三部分组成:
ECMAScript(语法部分):JavaScript 语言基础
DOM(文档对象模型):规定了访问 HTML 和 XML 的方法
BOM(浏览器对象模型):提供了浏览器窗口之间进行交互的对象和方法
3、介绍 JS 有哪些内置对象?
数据封装类对象:Object、Array、Boolean、Number、String
其他对象:Function、Arguments、Math、Date、RegExp、Error
ES6 新增对象:Symbol、Map、Set、Promises、Proxy、Reflect
4、JS 的基本数据类型和引用数据类型
基本(原始)数据类型: number、string、boolean、undefined, null, symbol
引用数据类型: Object、Function、Array
5、说几条写 JavaScript 书写的基本规范?
代码一定要正确缩进,建议使用"二个或者四个空格"缩进
语句结束使用分号;
规范定义 JSON 对象,补全双引号
用{}和[]声明对象和数组
变量和函数在使用前进行声明
以大写字母开头命名构造函数,全大写命名常量
代码段使用花括号{}包裹
还有要书写正确的标识标签
6、什么是标识符?
在JS中,可以自定义命名的东西都属性标识符;
比如变量名,函数名,参数名都是标识符
7、DOM 元素e的 e.getAttribute(propName)和 e.propName 有什么区别和联系
e.getAttribute:获取的是标签上属性
可以通过e.setAttribute(propName, propValue)设置标签上属性
e.propName:获取的是元素对象上属性
8、offsetWidth/offsetHeight,clientWidth/clientHeight,scrollWidth/scrollHeight 的区别?
offsetWidth/offsetHeight 返回值包含 content + padding + border + 包含滚动条,效果与 e.getBoundingClientRect()相同
clientWidth/clientHeight 返回值只包含 content + padding,如果有滚动条,也不包含滚动条
scrollWidth/scrollHeight 返回值包含 content + padding + 溢出内容的尺寸
9、检测浏览器版本版本有哪些方式?
根据 navigator.userAgent // UA.toLowerCase().indexOf('chrome')
10、说一下元素节点、文本节点、属性节点的nodeType、nodeName、nodeValue分别是什么
nodeType(节点类型) nodeName(节点名称) nodeValue(节点的值)
元素节点: 1 元素标签名 null(没有值)
属性节点: 2 属性名 属性值
文本节点: 3 text 节点内容
11、 ==
和 ===
的区别
双等号判断时,只需要值相等
三等号判断时,需要值与类型都相等
12、函数声明与函数表达式的区别?
数声明就是直接通过function进行声明函数,例如:function show(){}可以在声明函数之前调用0函
13、数组方法pop() push() unshift() shift()
pop()尾部删除
push()尾部添加
unshift()头部添加
shift()头部删除
14、ajax请求的时候get 和post方式的区别
(1)get请求
参数要跟在url后面 安全性不高 传输数据比较小,但速度快 一般用于获取,删除
(2)post请求
参数会放在请求体中, 安全性相对高些 传输数据大,但相对速度慢些 post一般用于修改或者添加
15、解释什么是Json:
json是一种轻量级的数据交换格式,一般用于数据传递
里边只允许出现双引号
JSON的语法表示三种类型值,简单值(字符串,数值,布尔值,null), 数组,对象
16、dom事件委托什么原理,有什么优缺点 事件委托原理: 事件冒泡机制(把子元素的事件行为 委托给 父级元素执行优点)
优点: 1. 可以大量节省内存占用,减少事件注册 2. 可以实现当新增子对象时,无需再对其进行事件绑定
缺点: 如果把所有事件都用事件代理,可能会出现事件误判
17、Javascript的事件流模型都有什么?
“事件冒泡”:事件逐级向上传播
“事件捕捉”:事件逐级向下传播,一直到最具体的
“DOM事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡
18、split() join() 的区别
split():以指定的字符分割字符串返回一个数组,字符串方法
join(): 以指定的字符连接数组中元素返回一个字符串,数组方法
19、如何阻止事件冒泡
ev.stopPropagation();
20、如何阻止默认事件
答案:return false 或者 ev.prevent Default();
21、JavaScript中如何检测一个变量是一个 String 类型?
typeof 变量
变量.constructor === String
Object.prototype.toString.call(变量) // 推荐使用
22、javascript 的 typeof 返回哪些数据类型(至少六个)检测类型如下:
string、 number、 boolean 、undefined 、object 、function 、symbol(ES6之后新增的类型)
23、如何判断变量为NaN
通过isNaN()判断
isNaN(NaN) // 返回true
isNaN(1000) // 返回false
isNaN('小明') // 返回true(判断前会转换成number类型)
isNaN('101') // 返回false
24、什么是JS变量提升 与 块级作用域
变量提升 :就是会把变量定义提升到当前作用域的最上面
块级作用域 :JS 中作用域有:全局作用域、函数作用域。没有块作用域的概念。ES6中新增了块级作用域。块作用域由 { } 包括,if 语句和 for 语句里面的{ }也属于块作用域。在外边不能调用块作用域里边定义的变量
25、null / undefined 的区别
null值: 属于null类型,代表“空值",代表一个空对象指针;使用typeof运算得到 “object",所以你可以认为它是一个特殊的对象值。
undefined值: 属于undefined类型,当一个声明的变量未初始化赋值时,得到的就是undefined。使用typeof运算得到“undefined",
26、foo = foo || bar,这行代码是什么意思?为什么要这样写?
如果foo转为false, 则返回bar;否则直接返回foo
逻辑或:如果第一个值为true,直接返回第一个值;否则直接返回第二个值
逻辑与:如果第一个值为false,直接返回第一个值;否则返回第二个值、
27、target 和 currentTarget 区别
都是事件对象上的属性
event.target:返回触发事件的元素
event.currentTarget:返回绑定事件的元素(相当于事件中this)
28、prototype 和 proto 的关系是什么
prototype : 所有函数都会有一个prototype属性, 它就是函数的原型对象
proto : 所有实例对象上都会有一个proto 属性, 它等同于函数的原型对象
(补充说明) 原型链:因为所有实例对象都原型对象,原型对象也个对象, 所以它也自己原型对象(这样形成原型链)
答案:
所有的对象都拥有proto 属性,它指向对象构造函数的 prototype 属性
所有的函数都同时拥有proto 和 prototype 属性
函数的proto 指向自己的函数实现 函数的 protytpe 是一个对象(原型)
所以函数的 prototype 也有proto 属性 指向 Object.prototype
Object.prototype.proto 指向 null
29、请说一下你常用的数组方法(至少七个) 答案:
1)Array.push() :此方法是在数组的后面添加新加元素,此方法改变了数组的长度:
2)Array.pop() :此方法在数组后面删除最后一个元素,并返回数组,此方法改变了数组的长度:
3) Array.shift() :此方法在数组后面删除第一个元素,并返回数组,此方法改变了数组的长度:
4) Array.unshift() :此方法是将一个或多个元素添加到数组的开头,并返回新数组的长度:
5)Array.isArray() :判断一个对象是不是数组,返回的是布尔值
6) Array.concat() :此方法是一个可以将多个数组拼接成一个数组:
7)Array.toString() : 把数组作为字符串返回
8) Array.join() :以指定字符拼接成字符串,然后返回
9) Array.splice: (开始位置, 删除的个数,元素)
10)Array.map() :此方法是将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组
11)Array.forEach() :此方法是将数组中的每个元素执行传进提供的函数,没有返回值,直接改变原数组,注意和 map 方法区分
12)Array.filter() :此方法是将所有元素进行判断,将满足条件的元素作为一个新的数组返回
13)Array.every() :此方法是将所有元素进行判断返回一个布尔值,如果所有元素都满足判断条件,则返回 true,否则为 false:
14)Array.some() :此方法是将所有元素进行判断返回一个布尔值,如果存在元素都满足判断条件,则返回 true,若所有元素都不满足判断条件,则返回 false:
15)Array.reduce() :此方法是所有元素调用返回函数,返回值为最后结果,传入的值必须是函数类型:
与之相对应的还有一个 Array.reduceRight() 方法,区别是这个是从右向左操作
30、请说一下你常用的字符串方法(至少七个)
trim(): 去首尾空格
split(sep,limit): 将字符串分割为字符数组,limit 为从头开始执行分割的最大数量
indexOf(str): 返回 str 在父串中第一次出现的位置,若没有则返回-1
lastIndexOf(str): 返回 str 在父串中最后一次出现的位置,若没有则返回-1
substr(start,length): 从字符索引 start 的位置开始,返回长度为 length 的子串
substring(from,to): 返回字符索引在 from 和 to(不含)之间的子串
slice(start,end): 返回字符索引在 start 和 end(不含)之间的子串
toLowerCase(): 将字符串转换为小写
toUpperCase(): 将字符串转换为大写
replace(str1,str2): str1 也可以为正则表达式,用 str2 替换 str1
concat(str1,str2,...): 连接多个字符串,返回连接后的字符串的副本
match(regex): 搜索字符串,并返回正则表达式的所有匹配
charAt(index): 返回指定索引处的字符串
charCodeAt(index): 返回指定索引处的字符的 Unicode 的值
fromCharCode(): 将 Unicode 值转换成实际的字符串
search(regex): 基于正则表达式搜索字符串,并返回第一个匹配的位置
valueOf(): 返回原始字符串值
31、原型和原型链
原型: portoType这个属性就是函数的原型
原型链: 1.所有对象都有原型,而原型本身就是对象,所以原型也有自己的原型对象,就形成原型链
如果对象本身没有属性,则就会去原型链上去找
Object原型对象的原型值为null
32、new操作符具体做了什么?
在内存创建一个新对象
把构造函数中this指向新建的对象
会在新对象上添加一个__proto__属性,指向函数的原型对象prototype
判断函数返回值,如果值是引用类型就直接返回值;否则返回this(创建的新对象)
33、说下什么是IIFE函数
IIFE(立即调用函数表达式)是一个在定义时就会立即执行的函数。
34、浅拷贝与深拷贝有何区别?如何实现?
浅拷贝: 拷贝的是原对象的内存地址
深拷贝: 在内存中把原对象复制一份
浅拷贝的实现方式有:
(1)直接变量赋值
(2)Object.assign();但目标对象只有一层的时候,是深拷贝;
(3)扩展运算符(...);目标对象只有一层的时候,是深拷贝;
深拷贝就是在拷贝数据的时候,将数据的所有引用结构都拷贝一份。
(1)结合使用JSON.parse()和JSON.stringify()方法。
(2)手写遍历递归赋值;
35、字符串截取方法substr、 substring、 slice三者的区别
substr(n,m):截取的是字符串中索引为n开始的,并且截取m位
substring(n,m):从索引为n的位置开始截取,截取到索引为m的位置但是不包含索引为m这一项
slice(n,m):和substring一样,但是他可以支持负数索引
36、函数柯里化
概念 :把一个接收多个参数的函数变成接收单一参数 并且返回能够接收新参数的函数;比如:
add(1)(2)(3)(4) = 10;
function add(num){
var sum=num;
var fn=function(v){
sum+=v;
return fn
};
fn.toString=function(){
return sum
};
return fn
}
console.log(add(1)(2)(3)(4)) // 10
37、判断Array类型的几种方式0
1、[ ] instanceof Array
2、[ ].constructor === Array
3、Object.prototype.toString.call([]) === '[object Array]'
4、Array.isArray([])
38.this指向的各种情况都有什么?
全局作用域中的函数:非严格模式下其内部this指向window
对象内部的函数:其内部this指向对象本身:
构造函数:其内部this指向生成的实例:
由apply、call、bind改造的函数:其this指向第一个参数:
箭头函数:箭头函数没有自己的this,看其外层的是否有函数,如果有,外层函数的this就是内部箭头函数的this,如果没有,则this是window。(函数定义时的this,而不是调用时this)
39.什么是AJAX?如何实现?
ajax是一种能够实现网页局部刷新的技术,可以使网页异步刷新。
ajax的实现主要包括四个步骤:
(1)创建核心对象XMLhttpRequest;
(2)利用open方法打开与服务器的连接;
(3)利用send方法发送请求;("POST"请求时,还需额外设置请求头)
(4)监听服务器响应,接收返回值。
40.什么是高阶函数?
高阶函数是对其他函数进行操作的函数;
高阶函数就是一个接收函数作为参数或将函数作为输出返回的函数。
例如,Array.prototype.map,Array.prototype.filter 和Array.prototype.reduce 是语言中内置的一些高阶函数。
41、描述浏览器的渲染过程?,DOM树和渲染树的区别?
解析 HTML 构建 DOM(DOM树),并行请求 css/image/js
CSS 文件下载完成,开始构建 CSSOM(CSS树)
CSSOM 构建结束后 和 DOM 一起生成 Render Tree(渲染树)
布局(Layout):计算出每个节点在屏幕中的位置
显示(Painting):通过显卡把页面画到屏幕上
DOM 树与 HTML 标签一一对应,包括 head 和隐藏元素
渲染树不包括 head 和隐藏元素,大段文本的每一个行都是独立节点,每一个节点都有对应的 css 属性
42、Javascript 如何实现继承?
实例继承:将子构造函数的 prototype 指向父构造函数的一个实例
原型继承:将子构造函数的 prototype 指向父构造函数的 prototype
构造函数绑定:使用 call 或 apply 方法,将父对象的构造函数绑定在子对象上
拷贝继承:如果把父对象的所有属性和方法,拷贝进子对象
ES6 语法 extends:class ColorPoint extends Point {}
43、Javascript 作用域链?
如果当前作用域没有找到属性或方法,会向上层作用域查找, 直至全局函数,这种形式就是作用域链
44、eval是做什么的? eval 的功能是把对应的字符串解析成 JS 代码并运行
应该避免使用 eval,不安全,非常耗性能(先解析成 js 语句,再执行)
由 JSON 字符串转换为 JSON 对象的时候可以用 eval('('+ str +')');
45、js延迟加载的方式有哪些? 动态创建 DOM 方式(用得最多)、defer 和 async标签属性
46、defer 和 async区别
defer 并行加载 js 文件,会按照页面上 script 标签的顺序执行
async 并行加载 js 文件,下载完成立即执行,不会按照页面上 script 标签的顺序执行
47、同步和异步的区别?
同步: 下面代码会等待上面 同步代码执行完毕
异步: 下面代码不会等待上面异步代码执行完毕
同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新, 新内容出现,用户看到新内容,进行下一步操作
异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。 等请求完,页面不刷新,新内容也会出现,用户看到新内容
48、documen.write 和 innerHTML 的区别
document.write 只能重绘整个页面
innerHTML 可以重绘页面的某一部分
49、说说你对闭包的理解 闭包有三个特性:
函数嵌套函数
函数内部可以引用外部的参数和变量
参数和变量不会被垃圾回收机制回收,会永远留驻在内存中
使用闭包主要是为了设计私有的方法和变量。 优点:是可以避免全局变量的污染,
缺点:是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。
50、 把
放在
之前和之后有什么区别?
浏览器会如何解析它们?
按照HTML标准,在结束后出现
或任何元素的开始标签都是解析错
虽然不符合 HTML 标准,但浏览器会自动容错,使实际效果与写在
之前没有区别
浏览器的容错机制会忽略
之前的,视作
仍在 body 体内。
51、 为什么 JS 是单线程, 而不是多线程 [常考]
单线程是指 JavaScript 在执行的时候,有且只有一个主线程来处理所有的任务。
目的是为了实现与浏览器交互。
我们设想一下,如果 JavaScript 是多线程的,现在我们在浏览器中同时操作一个 DOM,一个线程要求浏览器在这个 DOM 中添加节点, 而另一个线程却要求浏览器删掉这个 DOM 节点, 那这个时候浏览器就会很郁闷,他不知道应该以哪个线程为准。 所以为了避免此类现象的发生,降低复杂度,JavaScript 选择只用一个主线程来执行代码,以此来保证程序执行的一致性。
52、请说出以下结果输出什么?为什么?
for(var i = 0; i < 5; i++) {
setTimeout(function(){
console.log(i)
}, 0)
}
答案:5个5 解释:异步代码需要等同步代码先执行,所以当异步定时器执行时, 同步的for循环已经循环完毕
53、请说出以下flag的结果?为什么?
function show(){}
function getName() { return '牛夫人' }
var flag = show() || getName()
答案:flag值为'牛夫人' 解释:1.函数都会有一个默认的返回值undefined 2.逻辑或如果第一个值成立就直接返回第一个值,否则直接返回第二个值
54、请解释一下什么是重排与重绘?
重排: 当改变dom结构的时候,就会从dom树开始从新渲染页面,这过程叫重排比如添加或者删除可见的DOM元素、元素尺寸改变、元素内容改变、浏览器窗口尺寸改变等等
重绘: 当改变样式(不改变几何结构)的时候,它会从render树开始重新开始渲染页面,这过程叫重绘,比如改变颜色,透明等
55、怎么减少重排与重绘?
尽量避免操作DOM元素
避免多次修改dom结构或者css,集中处理,只引发一次重绘或者重排
56、请解释一下什么是防抖与节流
总结:就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
总结:就是每次触发事件的隔间至少要大于等于n秒,不会重置计时
57、说一下call、apply、bind三者的作用 与 区别
作用: 三者的作用都是可以改变函数的this指向(function对象自带的方法)
区别: 1.call、apply会直接调用原函数,bind不会直接调用函数,而会拷贝一份返回一个新函数
call、bind传参时一个个传入,而apply是把所有参数放到一个数组中传入
58、JS严格模式的使用与作用 答案: 在代码前面使用"use strict"就可以开启严格模式;
作用:
消除 Javascript 语法的一些不合理、不严谨之处,减少一些怪异行为;
消除代码运行的一些不安全之处,保证代码运行的安全;
提高编译器效率,增加运行速度;
为未来新版本的 Javascript 做好铺垫。
59、举例JS严格模式的特点
变量必须要通过修饰符进行声明
函数的参数不能有同名属性,否则报错
禁止 this 指向全局对象
增加了保留字(比如 protected 、 static 和 interface )
不能删除变量 delete prop
60、执行下面代码打印什么?为什么?
var a = {};
var b = {key: 'b'};
var c = {key: 'c'};
var d = [3,5,6];
a[b] = 123;
a[c] = 345;
a[d] = 333;
console.log(a[b]);
console.log(a[c]);
console.log(a[d]);
console.log(a[b]); // 打印:345 console.log(a[c]); // 打印:345 console.log(a[d]); // 打印:333 为什么:对象转化字符串会变成一个'[object Object]'
61、JS中的Array.prototype.splice()和Array.prototype.slice()方法作用与区别
splice(): 第一个参数为下标,第二个参数为截取个数,并且会影响原数组
slice():第一个参数为起始下标,第二个参数为结束下标,不会影响原数组
63、下方js执行后的打印值为?
function demo() {
this.length = 10;
var fn = function() {
console.log(this.length); // 输出多少?
}
arr = [fn, 'hello layui'];
fn.length = 100;
arr0;
}
window.demo()
console.log(this.length)------打印结果为2
64、事件绑定的三种方式
在标签上直接设置事件 onclik="a()"
dom.onclick = function(){}
addEventListener('click',function(){},true)
65、事件绑定和普通事件有什么区别?
dom.onclick = function(){}
addEventListener('click',function(){},true)
66、渐进增强与优雅降级
渐进增强: 针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进,达到更好的用户体验。
优雅降级: 一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
67、浏览器对象有哪些
navigator:含有正在使用的Navigator的名称、版本属性,
window:最高等级的对象,拥有整个窗口的属性;
document:包含基于文档内容的属性
location:含有基于当前的URL的属性。
history:包含客户机先前已经请求过的URL。
68、列举3种强制类型转换(显示类型转换) 和 2种隐式类型转换
Number('1235')
parseInt('1235')
parseFloat('1235')
'10' - 0
'10' * 0
69、for in 和 for of 答案: (1)、for in
1.一般用于遍历对象的可枚举属性。以及对象从构造函数原型中继承的属性
2.不建议使用 for in 遍历数组,因为输出的顺序是不固定的。
3.如果迭代的对象的变量值是 null 或者 undefined, for in 不执行循环体,建议在使用 for in 循环之前, 先检查该对象的值是不是 null 或者 undefined
(2)、for of
for…of 语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等) 上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句
70、回答以下代码,alert的值分别是多少?
通过var(let、const)定义声明变量,如果var则就仅仅只给变量赋值
71、form中的input可以设置为readonly和disabled,请问2者有什么区别?
readonly不可编辑,但可以选择和复制;值可以传递到后台
disabled不能编辑,不能复制,不能选择;值不可以传递到后台
72、怎么降维数组 [[1,2],[3,4]] --> [1, 2, 3, 4]
使用递归循环,把所有元素放到一个新数组
Array.prototype.concat.apply([],[[1,2],[3,4]]);
73、请说出三种减低页面加载时间的方法
压缩css、js文件
合并js、css文件,减少http请求(精灵图)
外部js、css文件放在最底下
减少dom操作,尽可能用变量替代不必要的dom操作
74、基本数据类型和引用数据类型有什么区别?
(1)变量直接赋值时:
基本数据类型赋值的是数据的副本,原数据的更改不会影响传入后的数据。
引用数据类型赋值的是数据的引用地址,原数据的更改会影响传入后的数据。
(2)两者在内存中的存储位置:
基本数据类型存储在栈中。
引用数据类型在栈中存储了指针,该指针指向的数据实体存储在堆中。
75、如何改变this指针的指向?
可以使用apply、call、bind方法改变this指向(并不会改变函数的作用域)。比较如下:
(1)三者第一个参数都是this要指向的对象,也就是想指定的上下文,上下文就是指调用函数的那个对象(没有就指向全局window);
(2)apply第二个参数都是数组,call和bind接收多个参数并用逗号隔开;
(3)apply和call只对原函数做改动,bind会返回新的函数(要生效还得再调用一次)。
76、document load事件 和 document ready事件 的区别
页面加载完成有两种事件
1)load是当页面所有资源全部加载完成后(包括DOM文档树,css文件,js文件,图片资源等),执行一个函数
问题:如果图片资源较多,加载时间较长,onload后等待执行的函数需要等待较长时间,所以一些效果可能受到影响
2)$(document).ready()是当DOM文档树加载完成后执行一个函数 (不包含图片,css等)所以会比load较快执行
在原生的jS中不包括ready()这个方法,只有load方法就是onload事件
77、JS中有哪些不同类型的弹出框可用
Alert
Confirm
Prompt
78、线程与进程的区别
一个程序至少有一个进程, 一个进程至少有一个线程。
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,
由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
79、什么是回调
回调函数是作为参数或选项传递给某个方法的普通JS函数。
它是一个函数,在另一个函数完成调用后执行,因此称为回调。
80、如何使用 JS 删除 cookie
如果要删除cookie以便后续尝试读取cookie,则只需将过期日期设置为过去的时间。
咱们应该定义cookie路径以确保删除正确的cookie。
如果未指定路径,某些浏览器将不允许咱们删除cookie
81、2+5+'3'的结果是什么
答案:'73'
由于2和5是整数,它们将以数字形式相加。因为3是一个字符串,它将与 7 拼接,结果是73。
82、如何在JS中清空数组
1、arrayList = []
2、arrayList.length = 0;
3、arrayList.splice(0, arrayList.length);
4、 while(arrayList.length){
arrayList.pop();
}
83、innerHTML 和 innerText 的共同点与区别
innerHTML可以解析内容中html标签
innerText不可以解析内容中html标签
84、请选择结果为真的表达式:(C)
A.null instanceof Object
B.null === undefined
C.null == undefined+
D.NaN == NaN
86、原生JS中如何从一个页面 跳转 到另一个页面
location.href = '路径'
location.replace('路径')
87、在JS中编码与解码URL
.encodeURI() 可以对字符串编码
.decodeURI() 可以对字符串解码
88、callee 与 call 与 caller的区别:
callee是arguments上面的属性,表示当前正在执行的函数
call改变函数调用时里边this的指向
caller是函数上的一个属性,它指向当前函数外一层函数,没有外一层函数,则为null
89、什么是jsonp
jsonp是一种解决跨域请求问题的技术
不足点:它只能是get请求
90、[1, 2, 3].map(Math.pow)的结果是什么?
请说出代码的运行结果,为什么?
结果时 129
map()会根据提供提供的函数对指定序列(列表)做映射。
pow()方法返回 x的y次方的值。 map(function(当前元素的值value,下标index));
91、toString() 与 valueOf()的区别
toString() 方法返回一个表示该对象的字符串。
valueOf() 方法返回指定对象的原始值, 如果对象没有原始值,则valueOf将返回对象本身
92、怎么自定义一个dom事件,并且编程式触发它?
通过new Event('事件名')创建一个事件对象
给指定元素绑定事件
document.dispatchEvent(事件对象)来触发事件
示例
const ev = new Event('abc');
document.addEventListener('abc', function (e) {
console.log('abc事件触发了。。。。。。')
})
document.dispatchEvent(ev)
93、continue 与 break的区别
continue:跳过本次循环,直接进入下一次循环
break:直接终止循环
94、简述一下你对 HTML 语义化标签的理解?
① 用正确的标签做正确的事情。 ② html语义化让页面的 内容结构化,结构更清晰, 便于对浏览器、搜索引擎解析;即使在没有样式 CSS 情况下也以一种文档格式显示, 并且是容易阅读的; ③ 搜索引擎的爬虫也依赖于 HTML 标记来确定上下文和各个关键字的权重,利于SEO; ④ 使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
95、图片img标签title与alt属性的区别
title属性:光标移入要显示图片文字
alt属性:当图片加载失败时要显示的文字
96、HTML5 的 form 如何关闭自动完成功能?
答案:将不想要自动完成的form
或input
设置为autocomplete=off
97、简述一下 src 与 href 的区别。
答案:src 用于引用资源,替换当前元素; href 用于在当前文档和引用资源之间确立联系。
解析:
● href
href 标识超文本引用,用在 link 和 a 等元素上,href 是引用和页面关联,
是在当前元素和引用资源之间建立联系,在加载它的时候,
不会停止对当前文档的处理,
浏览器会继续往下走
若在文档中添加 href ,浏览器会识别该文档为 CSS 文件,
就会并行下载资源并且不会停止对当前文档的处理。
这也是为什么建议使link方式加载 CSS,而不是使用 @import 方式。
● src
src 表示引用资源,替换当前元素,用在 img,script,iframe 上,
src 是页面内容不可缺少的一部分。
当浏览器解析到 src ,会暂停其他资源的下载和处理
(图片不会暂停其他资源下载和处理),直到将该资源加载、编译、执行完毕,
图片和框架等也如此,类似于将所指向资源应用到当前内容。
这也是为什么建议把 js 脚本放在底部而不是头部的原因。
98、对 WEB 标准以及 W3C 的理解与认识
标签闭合、标签小写、不乱嵌套
使用外链css 和 js脚本、结构行为表现的分离、文件下载与页面速度更快
W3C标准使网站容易维护、有利于搜索引擎查找
99、Label的作用是什么?是怎么用的?
答案:label 标签来定义表单控制间的关系,**当用户选择该标签时, 浏览器会自动将焦点转到和标签相关的表单控件上**。
两种用法:一种是 id 绑定,一种是嵌套;
示例:
用户名:
100、每个 HTML 文件头里都有个很重要的东西,Doctype,知道这是干什么的么?
声明位于文档中的最前面的位置,处于 标签之前。
告知浏览器文档使用哪种 HTML 或 XHTML 规范。
告诉浏览器按照何种规范解析页(如果你的页面没有 DOCTYPE 的声明,那么 compatMode 默认就是 BackCompat,浏览器按照自己的方式解析渲染页面)
解析: doctype 是一种标准通用标记语言的文档类型声明,目的是告诉标准通用标记语言解析器要使用什么样的文档类型定义(DTD)来解析文档。 浏览器本身分为两种模式,一种是标准模式,一种是怪异模式,浏览器通过 doctype 来区分这两种模式,doctype 在 html 中的作用就是触发浏览器的标准模式,如果 html 中省略了 doctype,浏览器就会进入到 Quirks 模式的怪异状态,在这种模式下,有些样式会和标准模式存在差异,而 html 标准和 dom 标准值规定了标准模式下的行为,没有对怪异模式做出规定,因此不同浏览器在怪异模式下的处理也是不同的,所以一定要在 html 开头使用 doctype。
doctype是一种标准通用标记语言的文档类型声明;
doctype在 html中的作用就是触发浏览器的标准模式,否则为怪异模式;
不同浏览器在怪异模式下会有一些不同的表现,不建议使用怪异模式;
doctype一定需要写html上面才会生效;
-----------------------------------------------------------6月27--------------------------------------------------------------
101、为什么最好把 CSS 的
标签放在
之间? 为什么最好把 JS 的
标签恰好放在
之前,有例外情况吗?
内容规范
让页面逐步呈现,提高用户体验感
防止呈现给用户空白的页面或没有样式的内容
规范;
把
你可能感兴趣的:(面试题,前端,javascript,jquery,es6,vue.js)
【后端开发面试题】每日 3 题(十五)
Pandaconda 的测开之路
# 后端开发面试专栏 面试 后端 后端开发 分布式 数据库 幂等性 python
✍个人博客:Pandaconda-CSDN博客专栏地址:https://blog.csdn.net/newin2020/category_12903849.html专栏简介:在这个专栏中,我将会分享后端开发面试中常见的面试题给大家,每天的题目都是独立且随机的,之前的面试题不会影响接下来的学习~❤️如果有收获的话,欢迎点赞收藏,您的支持就是我创作的最大动力题目1:什么是分布式锁?它的使用场景是什么?
【后端开发面试题】每日 3 题(八)
Pandaconda 的测开之路
# 后端开发面试专栏 分布式 负载均衡 后端 面试 后端开发 java 数据库
✍个人博客:Pandaconda-CSDN博客专栏地址:https://blog.csdn.net/newin2020/category_12903849.html专栏简介:在这个专栏中,我将会分享后端开发面试中常见的面试题给大家~❤️如果有收获的话,欢迎点赞收藏,您的支持就是我创作的最大动力1.简述负载均衡的概念、常见算法及其在后端开发中的应用场景概念:负载均衡是一种将工作负载分布到多个计算资源
【测试开发面试题】每日 3 题(十六)
Pandaconda 的测开之路
# 测试开发面试专栏 面试 测试开发 测试 性能测试 测试用例 边界值分析 A/B测试
✍个人博客:Pandaconda-CSDN博客专栏地址:https://blog.csdn.net/newin2020/category_12903869.html专栏简介:在这个专栏中,我将会分享测试开发面试中常见的面试题给大家,每天的题目都是独立且随机的,之前的面试题不会影响接下来的学习~❤️如果有收获的话,欢迎点赞收藏,您的支持就是我创作的最大动力题目1:什么是测试用例的边界值分析?为什么它
鸿蒙(HarmonyOS)性能优化—Web开发常见问题
码牛程序猿
HarmonyOS 鸿蒙工程师 鸿蒙 harmonyos 华为 HarmonyOS 鸿蒙应用开发 鸿蒙系统 鸿蒙 鸿蒙开发
H5页面如何与ArkTS交互(API10)问题现象目前javaScriptProxy仅支持同步调用,异步调用无法获取执行结果。解决措施对javaScriptProxy和runJavaScript封装,实现JSBridge通信方案。适用于H5调用原生侧函数。使用Web组件javaScriptProxy将原生侧接口注入到H5的window对象上,通过runJavaScript接口执行JS脚本到H5中,
【JSON-RPC】 python+JSON-RPC示例与入门
魔都吴所谓
json rpc python
JSON-RPC是一种无状态的、轻量级的远程过程调用(RPC)协议。它定义了几种数据结构及其处理规则。它使用JSON(JavaScriptObjectNotation)作为数据格式,允许实现相同功能的程序以松散耦合的方式跨网络通信。以下是一个简单的JSON-RPC使用Python的示例。我们将使用jsonrpclib这个库来创建一个JSON-RPC服务端和一个客户端。首先,你需要安装jsonrpc
芯片制造、汽车制造行业网站,如何用插件增强富文本编辑器的WORD粘贴功能?
全武凌(荆门泽优)
金融 编辑器 word umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片
要求:开源,免费,技术支持编辑器:百度ueditor前端:vue2,vue3,vue-cli,react,html5用户体验:Ctrl+V快捷键操作功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏平台:Windows,macOS,Linux,RedHat,CentOS,Ubuntu,中标麒麟,银河麒麟,统信UOS,
金融行业网页编辑器对WORD图文混排有哪些特殊需求?
全武凌(荆门泽优)
金融 编辑器 word umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片
要求:开源,免费,技术支持编辑器:百度ueditor前端:vue2,vue3,vue-cli,react,html5用户体验:Ctrl+V快捷键操作功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏平台:Windows,macOS,Linux,RedHat,CentOS,Ubuntu,中标麒麟,银河麒麟,统信UOS,
HTML编辑器CKEDITOR支持哪些格式的WORD内容导入?
2501_90699640
html 编辑器 word ckeditor粘贴word ckeditor导入word ckeditor导入pdf ckeditor导入ppt
要求:开源,免费,技术支持编辑器:ckeditor前端:vue2,vue3.vue-cli后端:asp,java,jsp,springboot,php,asp.net,.netcore功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏平台:Windows,macOS,Linux,RedHat,Ubuntu,CentO
金融行业Vue应用如何利用wangEditor实现WORD文档高效上传?
2501_90699640
金融 vue.js word umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片
要求:开源,免费,技术支持编辑器:百度ueditor前端:vue2,vue3,vue-cli,react,html5用户体验:Ctrl+V快捷键操作功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏平台:Windows,macOS,Linux,RedHat,CentOS,Ubuntu,中标麒麟,银河麒麟,统信UOS,
2024年HarmonyOS鸿蒙最新鸿蒙应用开发当前支持的颜色枚举值(2),2024年最新社招面试题目
2401_84850323
程序员 鸿蒙 面试 学习
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新需要这份系统化的资料的朋
Cool Admin5(Go版)后台管理系统开发框架搭建使用记录
后青春期的诗go
经验分享 golang 开发语言 后端 go
一、环境说明nodejs建议版本:18二、安装安装框架github下载最新的zip压缩包,然后解压。#进入解压缩后的目录cdcool-admin5#直接修改go.mod里面的模块名(或删除原go.mod文件,重新初始化:Gomodinitcool-admin5)#根据需要调整man.go文件里的导入路径#安装依赖gomodtidy#运行后端项目Gorun.#进入前端目录Cdfrontend#安装依
计算机专业的就业方向
LTPP
人工智能 git java c++ 开发语言 面试 考研
计算机专业的就业方向亲爱的新生们,欢迎你们踏上计算机科学的旅程!作为一名计算机专业的学生,你们即将进入一个充满无限可能的领域。今天,我将为大家介绍计算机专业的一些主要就业方向,帮助你们了解未来的职业选择。1.软件开发软件开发是计算机专业学生最常见的就业方向之一。软件开发涉及编写、测试、维护应用程序、系统软件等。根据工作性质的不同,软件开发可以进一步细分为以下几个方向:前端开发:前端开发主要负责设计
Node.js和webpack入门-个人学习笔记
ksmswq
node.js webpack 学习
Node.js-入门Node.js基础概念Node.js是一个跨平台JavaScript运行环境,是开发者可以搭建服务器端的JavaStript应用程序。作用1.编写服务端程序2.编写数据接口,提供网页浏览资源等等3.实现“前端工程化”,为Vue和React等框架做铺垫前端工程化-概念开发项目直到上线,过程中集成的所有工具和技术。(Node.js是前端工程化的基础(因为Node.js可以主动读取前
基于python+django+vue.js开发的社区养老管理系统源码+运行步骤
冷琴1996
Python系统设计 python django vue.js
业余时间开发的社区养老系统,基于python/vue技术开发。学习过程问题可以留言。功能介绍平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。功能包括:老人管理、护工管理、亲属管理、病史管理、房间管理、活动管理、用户管理、日志管理、系统信息模块。源码地址https://github.com/geeeeeeeek/python_yanglao演示地址ht
基于 Vue 和 Element Plus 的时间范围控制与数据展示
奶糖 肥晨
vue vue.js elementui 前端
文章目录1.核心功能2.实现效果3.代码实现️3.1HTML部分3.2JavaScript部分3.3CSS部分本文将重点讲解如何在Vue项目中使用ElementPlus的el-date-picker组件实现时间范围选择,并结合“日”、“月”、“年”按钮动态控制时间范围。!1.核心功能时间范围选择:使用el-date-picker实现日期范围选择。快速切换:通过“日”、“月”、“年”按钮快速设置时间
【Vue.js 2.x源码解析】第18章 从Vue源码分析计算属性与侦听属性的本质差别
代码简单说
教你读懂Vue2.x源码 vue.js 前端 javascript
想深入了解Vue2.x源码底层原理实现,从编译系统、渲染系统到响应式系统vue-router和vuex等实现方式可以关注『Vue.js2.x源码精讲』专栏或查看专栏目录了解详情从Vue源码分析计算属性与侦听属性的本质差别计算属性(Computed)——了解它,你就能高效利用它`defineComputed`和`createComputedGetter`侦听属性(Watch)——灵活监听变化`wat
Vue.js 事件处理与修饰符详解
vvilkim
vue vue.js 前端 javascript
Vue.js是一个流行的前端框架,它提供了强大的事件处理机制,使得开发者可以轻松地处理用户交互。Vue的事件处理通过v-on指令实现,同时还提供了丰富的事件修饰符和按键修饰符,帮助我们更高效地处理事件。本文将详细介绍Vue的事件处理机制、修饰符的使用方法,并结合示例代码展示如何在实际开发中应用这些功能。1.v-on指令与事件处理在Vue中,v-on指令用于监听DOM事件,并在事件触发时执行Java
深入理解Vue 3:计算属性与侦听器的艺术
qcidyu
实战案例 性能优化 模板 路由 侦听器 计算属性 Vue3
title:深入理解Vue3:计算属性与侦听器的艺术date:2024/5/30下午3:53:47updated:2024/5/30下午3:53:47categories:前端开发tags:Vue3计算属性侦听器路由模板性能优化实战案例前言Vue3的新特性简介Vue.js作为当今流行的前端框架之一,以其响应式数据绑定和组件化架构著称。随着技术的不断演进,Vue3带来了许多令人期待的新特性,这些特性
前端(vue)学习笔记(CLASS 4):组件组成部分与通信
肥肠可耐的西西公主
vue.js 前端 学习
1、组件的三大组成部分(结构/样式/逻辑)注意点:1、结构只能有一个根元素2、全局样式(默认),影响所有组件;局部样式,scoped下样式,只作用于当前组件3、el根实例独有,data是一个函数,其他配置项一致样式注意点:默认情况下,写在组件中的样式会全局生效,因此很容易造成多个组件之间的样式冲突问题1、全局样式:默认组件中的样式会作用到全局2、局部样式:可以给组件加上scoped属性,可以让样式
B/S vs C/S架构:技术选型与实战对比
码农阿豪@新空间
包罗万象 c语言 架构 开发语言
个人名片作者简介:java领域优质创作者个人主页:码农阿豪工作室:新空间代码工作室(提供各种软件服务)个人邮箱:[
[email protected] ]个人微信:15279484656个人导航网站:www.forff.top座右铭:总有人要赢。为什么不能是我呢?专栏导航:码农阿豪系列专栏导航面试专栏:收集了java相关高频面试题,面试实战总结️Spring5系列专栏:整理了Spring5重要知识点与
前端学习路线:从零基础到初级工程师的完整指南(2025最新版)
超浪的晨
前端 学习
前言作为连接设计与技术的核心岗位,前端开发在数字化时代持续释放强大生命力。本路线图专为初学者设计,通过「渐进式学习路径」+「实战项目驱动」的模式,助你系统掌握现代前端开发技能体系。一、基础筑基阶段(4-6周)三大核心基石HTML5语义化标签()表单验证与多媒体支持SEO基础与无障碍访问CSS3Flex/Grid布局(重点掌握)动画与过渡(@keyframes+transition)响应式设计(媒体
Tauri+Dotnet+Vue3+Vite桌面应用程序创建
是楊不是杨
前后端 vue .netcore rust 前端框架
环境需求Node.js(已安装)Rust(安装Rust,必要).NETCoreSDK(用于后端)TauriCLI(通过Rust安装)1.创建Vue3+Vite前端项目初始化项目:bash复制代码npmcreatevite@latesttauri-vue3-dotnet--templatevuecdtauri-vue3-dotnet安装必要依赖:bash复制代码npminstall启动开发服务器,确
使用 React 和 Vite 使用 Tauri 构建番茄钟
pxr007
react.js rust 前端
Tauri是一组工具,可让您使用前端框架构建跨平台桌面应用程序。当与React和Vite结合使用时,它可以用于为所有桌面平台构建极其快速的二进制文件。开发人员可以使用Tauri通过Web技术编写安全、精简和快速的跨平台桌面应用程序。对于许多开发人员来说,Electron通常是这些应用程序的首选框架,但Tauri现在已经做好了竞争的准备。在这篇文章中,我们将构建一个简单的番茄钟计时器,我邀请您按照自
Angular 17与Material Design 3的结合之旅
t0_54program
编程问题解决手册 angular.js 前端 javascript 个人开发
引言随着前端技术的不断发展,用户界面的设计和体验变得越来越重要。MaterialDesign3作为谷歌推出的最新设计语言,其简洁、直观的设计理念吸引了众多开发者的关注。特别是对于Angular开发者来说,如何将MaterialDesign3与Angular框架无缝结合是一个值得探讨的问题。本文将带你一步一步了解如何在Angular17中使用MaterialDesign3组件。准备工作在开始之前,我
Maven 的核心包
旷野说
maven java
由于前端项目不是核心,阅读nexus-public源代码似乎绕远路了。nexus-oss社区版主要就是集成maven的上传包、认证、包解析、包存储这几个核心功能,前端实现重新可以使用新的现代前端工具来提高生产力。故重新疏理一下maven的核心机制,即要深入解析Maven的源代码,需要结合其核心设计思想、模块架构和实际运行机制。一、前置知识准备Maven基础熟悉pom.xml结构、生命周期(Life
线程池相关面试题
玛丽莲萌
java
一、什么是线程池?线程池是用来管理和复用线程的工具,他可以减少线程的创建和销毁开销。在java中,ThreadPoolExecutor是线程池的核心实现,它通过核心线程数、最大线程数、任务队列和拒绝策略来控制线程的创建和执行。举个例子:就像你开了一家餐厅,线程池就相当于固定数量的服务员,顾客(任务)来了就安排空闲的服务员(线程)处理,避免了频繁招人和解雇的成本。二、线程池的工作原理任务提交----
JavaScript基础-创建对象的三种方式
難釋懷
javascript 开发语言
在JavaScript编程中,对象(Object)是构建复杂数据结构和实现面向对象编程的基础。了解如何有效地创建对象对于编写高效、可维护的代码至关重要。本文将介绍三种主要的创建对象的方式:对象字面量、构造函数模式以及Object.create()方法,并讨论它们的特点及适用场景。一、使用对象字面量1.简介对象字面量是最简单直接的创建对象的方法。它允许你以一种非常直观的方式定义属性和方法。示例:le
探索DeepSeek:前端开发者不可错过的新一代AI技术实践指南
formerlyai
人工智能 前端
引言:为什么DeepSeek成为技术圈焦点?最近,国产AI模型DeepSeek凭借其低成本训练、高性能输出和开源策略,迅速成为开发者社区的热门话题。作为覆盖语言、代码、视觉的多模态技术矩阵,DeepSeek不仅实现了与ChatGPT相媲美的能力,还通过强化学习驱动的架构创新,解决了大模型落地中的成本与效率瓶颈。对于前端开发者而言,DeepSeek的API接入能力和私有化部署方案,为智能应用开发提供
一篇文章让你实现前端JS 、 Golang 、 Python如何接入DeepSeek大模型实现自己的AI
一只理智恩
AI 前端 后端 python golang javascript
本文将通过三种技术栈实现与DeepSeek大模型的对话交互,提供可直接运行的代码示例及详细注释。一、通用准备步骤1.获取API密钥登录DeepSeek开发者平台创建应用获取DEEPSEEK_API_KEY2.创建测试环境#项目结构deepseek-demo/├──frontend/#前端代码│└──index.html├──go-backend/#Golang后端│└──main.go├──py-
【芯片验证】面试题·对深度为60的数组进行复杂约束的技巧
尼德兰的喵
尼德兰的喵全内容专栏 芯片前端面经 算法 面试 职场和发展 芯片 IC 芯片验证
朋友发给我的芯片验证笔试题,觉得很有意思,和大家分享一下。面试题目classA中一个长度为60的随机数组randintarr[60],如何写约束使得:1.每个元素的值都在(0,100]之间,且互不相等;2.最少有三个元素满足勾股数要求,比如数组中包含3,4,5三个点;请以解约束最快的角度,完成classA的简单代码示意。解题思路原始代码其实就是这样嘛:classA;randintarr[60];c
Spring的注解积累
yijiesuifeng
spring 注解
用注解来向Spring容器注册Bean。
需要在applicationContext.xml中注册:
<context:component-scan base-package=”pagkage1[,pagkage2,…,pagkageN]”/>。
如:在base-package指明一个包
<context:component-sc
传感器
百合不是茶
android 传感器
android传感器的作用主要就是来获取数据,根据得到的数据来触发某种事件
下面就以重力传感器为例;
1,在onCreate中获得传感器服务
private SensorManager sm;// 获得系统的服务
private Sensor sensor;// 创建传感器实例
@Override
protected void
[光磁与探测]金吕玉衣的意义
comsci
这是一个古代人的秘密:现在告诉大家
信不信由你们:
穿上金律玉衣的人,如果处于灵魂出窍的状态,可以飞到宇宙中去看星星
这就是为什么古代
精简的反序打印某个数
沐刃青蛟
打印
以前看到一些让求反序打印某个数的程序。
比如:输入123,输出321。
记得以前是告诉你是几位数的,当时就抓耳挠腮,完全没有思路。
似乎最后是用到%和/方法解决的。
而今突然想到一个简短的方法,就可以实现任意位数的反序打印(但是如果是首位数或者尾位数为0时就没有打印出来了)
代码如下:
long num, num1=0;
PHP:6种方法获取文件的扩展名
IT独行者
PHP 扩展名
PHP:6种方法获取文件的扩展名
1、字符串查找和截取的方法
1
$extension
=
substr
(
strrchr
(
$file
,
'.'
), 1);
2、字符串查找和截取的方法二
1
$extension
=
substr
面试111
文强chu
面试
1事务隔离级别有那些 ,事务特性是什么(问到一次)
2 spring aop 如何管理事务的,如何实现的。动态代理如何实现,jdk怎么实现动态代理的,ioc是怎么实现的,spring是单例还是多例,有那些初始化bean的方式,各有什么区别(经常问)
3 struts默认提供了那些拦截器 (一次)
4 过滤器和拦截器的区别 (频率也挺高)
5 final,finally final
XML的四种解析方式
小桔子
dom jdom dom4j sax
在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML 是工作中使用最多的(至少我认为)。 预 备 测试环境: AMD 毒龙1.4G OC 1.5G、256M DDR333、Windows2000 Server
wordpress中常见的操作
aichenglong
中文注册 wordpress 移除菜单
1 wordpress中使用中文名注册解决办法
1)使用插件
2)修改wp源代码
进入到wp-include/formatting.php文件中找到
function sanitize_user( $username, $strict = false
小飞飞学管理-1
alafqq
管理
项目管理的下午题,其实就在提出问题(挑刺),分析问题,解决问题。
今天我随意看下10年上半年的第一题。主要就是项目经理的提拨和培养。
结合我自己经历写下心得
对于公司选拔和培养项目经理的制度有什么毛病呢?
1,公司考察,选拔项目经理,只关注技术能力,而很少或没有关注管理方面的经验,能力。
2,公司对项目经理缺乏必要的项目管理知识和技能方面的培训。
3,公司对项目经理的工作缺乏进行指
IO输入输出部分探讨
百合不是茶
IO
//文件处理 在处理文件输入输出时要引入java.IO这个包;
/*
1,运用File类对文件目录和属性进行操作
2,理解流,理解输入输出流的概念
3,使用字节/符流对文件进行读/写操作
4,了解标准的I/O
5,了解对象序列化
*/
//1,运用File类对文件目录和属性进行操作
//在工程中线创建一个text.txt
getElementById的用法
bijian1013
element
getElementById是通过Id来设置/返回HTML标签的属性及调用其事件与方法。用这个方法基本上可以控制页面所有标签,条件很简单,就是给每个标签分配一个ID号。
返回具有指定ID属性值的第一个对象的一个引用。
语法:
&n
励志经典语录
bijian1013
励志 人生
经典语录1:
哈佛有一个著名的理论:人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。每晚抽出2个小时的时间用来阅读、进修、思考或参加有意的演讲、讨论,你会发现,你的人生正在发生改变,坚持数年之后,成功会向你招手。不要每天抱着QQ/MSN/游戏/电影/肥皂剧……奋斗到12点都舍不得休息,看就看一些励志的影视或者文章,不要当作消遣;学会思考人生,学会感悟人生
[MongoDB学习笔记三]MongoDB分片
bit1129
mongodb
MongoDB的副本集(Replica Set)一方面解决了数据的备份和数据的可靠性问题,另一方面也提升了数据的读写性能。MongoDB分片(Sharding)则解决了数据的扩容问题,MongoDB作为云计算时代的分布式数据库,大容量数据存储,高效并发的数据存取,自动容错等是MongoDB的关键指标。
本篇介绍MongoDB的切片(Sharding)
1.何时需要分片
&nbs
【Spark八十三】BlockManager在Spark中的使用场景
bit1129
manager
1. Broadcast变量的存储,在HttpBroadcast类中可以知道
2. RDD通过CacheManager存储RDD中的数据,CacheManager也是通过BlockManager进行存储的
3. ShuffleMapTask得到的结果数据,是通过FileShuffleBlockManager进行管理的,而FileShuffleBlockManager最终也是使用BlockMan
yum方式部署zabbix
ronin47
yum方式部署zabbix
安装网络yum库#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 通过yum装mysql和zabbix调用的插件还有agent代理#yum install zabbix-server-mysql zabbix-web-mysql mysql-
Hibernate4和MySQL5.5自动创建表失败问题解决方法
byalias
J2EE Hibernate4
今天初学Hibernate4,了解了使用Hibernate的过程。大体分为4个步骤:
①创建hibernate.cfg.xml文件
②创建持久化对象
③创建*.hbm.xml映射文件
④编写hibernate相应代码
在第四步中,进行了单元测试,测试预期结果是hibernate自动帮助在数据库中创建数据表,结果JUnit单元测试没有问题,在控制台打印了创建数据表的SQL语句,但在数据库中
Netty源码学习-FrameDecoder
bylijinnan
java netty
Netty 3.x的user guide里FrameDecoder的例子,有几个疑问:
1.文档说:FrameDecoder calls decode method with an internally maintained cumulative buffer whenever new data is received.
为什么每次有新数据到达时,都会调用decode方法?
2.Dec
SQL行列转换方法
chicony
行列转换
create table tb(终端名称 varchar(10) , CEI分值 varchar(10) , 终端数量 int)
insert into tb values('三星' , '0-5' , 74)
insert into tb values('三星' , '10-15' , 83)
insert into tb values('苹果' , '0-5' , 93)
中文编码测试
ctrain
编码
循环打印转换编码
String[] codes = {
"iso-8859-1",
"utf-8",
"gbk",
"unicode"
};
for (int i = 0; i < codes.length; i++) {
for (int j
hive 客户端查询报堆内存溢出解决方法
daizj
hive 堆内存溢出
hive> select * from t_test where ds=20150323 limit 2;
OK
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
问题原因: hive堆内存默认为256M
这个问题的解决方法为:
修改/us
人有多大懒,才有多大闲 (评论『卓有成效的程序员』)
dcj3sjt126com
程序员
卓有成效的程序员给我的震撼很大,程序员作为特殊的群体,有的人可以这么懒, 懒到事情都交给机器去做 ,而有的人又可以那么勤奋,每天都孜孜不倦得做着重复单调的工作。
在看这本书之前,我属于勤奋的人,而看完这本书以后,我要努力变成懒惰的人。
不要在去庞大的开始菜单里面一项一项搜索自己的应用程序,也不要在自己的桌面上放置眼花缭乱的快捷图标
Eclipse简单有用的配置
dcj3sjt126com
eclipse
1、显示行号 Window -- Prefences -- General -- Editors -- Text Editors -- show line numbers
2、代码提示字符 Window ->Perferences,并依次展开 Java -> Editor -> Content Assist,最下面一栏 auto-Activation
在tomcat上面安装solr4.8.0全过程
eksliang
Solr solr4.0后的版本安装 solr4.8.0安装
转载请出自出处:
http://eksliang.iteye.com/blog/2096478
首先solr是一个基于java的web的应用,所以安装solr之前必须先安装JDK和tomcat,我这里就先省略安装tomcat和jdk了
第一步:当然是下载去官网上下载最新的solr版本,下载地址
Android APP通用型拒绝服务、漏洞分析报告
gg163
漏洞 android APP 分析
点评:记得曾经有段时间很多SRC平台被刷了大量APP本地拒绝服务漏洞,移动安全团队爱内测(ineice.com)发现了一个安卓客户端的通用型拒绝服务漏洞,来看看他们的详细分析吧。
0xr0ot和Xbalien交流所有可能导致应用拒绝服务的异常类型时,发现了一处通用的本地拒绝服务漏洞。该通用型本地拒绝服务可以造成大面积的app拒绝服务。
针对序列化对象而出现的拒绝服务主要
HoverTree项目已经实现分层
hvt
编程 .net Web C# ASP.ENT
HoverTree项目已经初步实现分层,源代码已经上传到 http://hovertree.codeplex.com请到SOURCE CODE查看。在本地用SQL Server 2008 数据库测试成功。数据库和表请参考:http://keleyi.com/a/bjae/ue6stb42.htmHoverTree是一个ASP.NET 开源项目,希望对你学习ASP.NET或者C#语言有帮助,如果你对
Google Maps API v3: Remove Markers 移除标记
天梯梦
google maps api
Simply do the following:
I. Declare a global variable:
var markersArray = [];
II. Define a function:
function clearOverlays() {
for (var i = 0; i < markersArray.length; i++ )
jQuery选择器总结
lq38366
jquery 选择器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
基础数据结构和算法六:Quick sort
sunwinner
Algorithm Quicksort
Quick sort is probably used more widely than any other. It is popular because it is not difficult to implement, works well for a variety of different kinds of input data, and is substantially faster t
如何让Flash不遮挡HTML div元素的技巧_HTML/Xhtml_网页制作
刘星宇
html Web
今天在写一个flash广告代码的时候,因为flash自带的链接,容易被当成弹出广告,所以做了一个div层放到flash上面,这样链接都是a触发的不会被拦截,但发现flash一直处于div层上面,原来flash需要加个参数才可以。
让flash置于DIV层之下的方法,让flash不挡住飘浮层或下拉菜单,让Flash不档住浮动对象或层的关键参数:wmode=opaque。
方法如下:
Mybatis实用Mapper SQL汇总示例
wdmcygah
sql mysql mybatis 实用
Mybatis作为一个非常好用的持久层框架,相关资料真的是少得可怜,所幸的是官方文档还算详细。本博文主要列举一些个人感觉比较常用的场景及相应的Mapper SQL写法,希望能够对大家有所帮助。
不少持久层框架对动态SQL的支持不足,在SQL需要动态拼接时非常苦恼,而Mybatis很好地解决了这个问题,算是框架的一大亮点。对于常见的场景,例如:批量插入/更新/删除,模糊查询,多条件查询,联表查询,