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)
【学术会议投稿】Vue.js组件开发实战:从零构建高效可复用组件
小周不想卷
艾思科蓝学术会议投稿 vue.js
【IEEE出版|会后3-4个月EI检索】第三届云计算、大数据应用与软件工程国际学术会议(CBASE2024)_艾思科蓝_学术一站式服务平台更多学术会议请看:https://ais.cn/u/nuyAF3目录引言一、Vue.js组件开发基础二、构建高效可复用组件三、Vue.js组件的高级特性四、Vue.js的优点与缺点Vue.js的优点Vue.js的缺点引言在现代前端开发中,Vue.js凭借其简洁的
《Vue.js 核心概念:前端魔法世界的奇幻基石》
Muai木离
前端 vue.js flutter
在当今数字化浪潮汹涌澎湃,Web应用如梦幻仙境般绚烂多彩且变幻无穷的时代,Vue.js仿若一位神秘而强大的魔法画师,其核心概念则是绘制出震撼人心的Web开发魔法画卷的神来之笔。这些概念宛如星空中最耀眼、最具魔力的星座,不仅赋予Vue.js令人心醉神迷的独特魅力与蓬勃无尽的创造力,更为构建灵动如仙、性能超凡且用户体验犹如置身奇幻梦境的Web应用勾勒出清晰可见的魔法蓝图。对于那些心怀对前端开发领域的炽
Pinia 实战指南:Vue 3 状态管理的高效之道
做人不能太高调
vue.js 前端 javascript
1.给我来个系统学习Pinia的大纲学习Pinia作为Vue.js的状态管理库,可以按照以下大纲来系统地进行学习:1.Pinia入门Pinia简介什么是Pinia?Pinia是Vue3的官方状态管理库,是对Vuex的继承和改进。它通过提供更简洁和灵活的API,使得在Vue应用中管理全局状态变得更加容易。Pinia是专为Vue3设计的,基于CompositionAPI,允许开发者以更加模块化和简洁的
【TypeScript学习笔记】TypeScript 核心知识点
Zaly.
Vue学习笔记 typescript 学习 笔记
目录前言TypeScript核心概念基本类型与高级类型常用内置工具类型类型断言与类型守卫TypeScript在Vue3中的应用Vue3中TypeScript的作用范围Props和Emits的类型定义CompositionAPI中的类型支持前言TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编
es6中的symbol基础知识
藤原とラふ店丶
es6 前端 ecmascript
ES6中的Symbol是一种新的原始数据类型(PrimitiveDataType),它代表唯一的、不可变的值。它的主要目的是为了解决属性名冲突的问题,并为对象定义非字符串的属性键(Key)。以下是Symbol的核心特性和用法:1.创建Symbol使用Symbol()函数创建,每次调用都会返回一个独一无二的值:constsym1=Symbol();constsym2=Symbol();console
error ‘vue‘ 不是内部或外部命令,也不是可运行的程序或批处理文件 [Windows/Mac/Linux 系统解决方案大全]
error‘vue‘不是内部或外部命令,也不是可运行的程序或批处理文件[Windows/Mac/Linux系统解决方案大全]在使用Vue.js开发时,常常会遇到如下错误提示:'vue'不是内部或外部命令,也不是可运行的程序或批处理文件。这是因为系统无法识别vue命令,可能源于多种原因:未安装或未正确配置环境变量、VueCLI未安装、Node.js管理工具(如nvm)切换版本后未重新全局安装等。作者
关于猫头虎,认识猫头虎,建联猫头虎,商务合作,产品评测,产品推广,个人自媒体创作,超级个体,涨粉秘籍,一起探索编程世界的无限可能!
猫头虎
猫头虎精品博客专栏 CSDN开发云 人机交互 交互 程序人生 程序员创富 创业创新 学习方法
猫头虎建联猫头虎,商务合作,产品评测,产品推广,个人自媒体创作,超级个体,涨粉秘籍,一起探索编程世界的无限可能!猫头虎是谁?大家好,我是猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评测图文、产品使用体验图文、产品优点推广文稿、产品横测对比文稿,以及线下技术沙龙活动参会体验文稿。内容涵盖云服务产品
聊聊 iframe:网页中的“窗口”是怎么回事?
结城
前端 前端 html
在网页开发中,是一个挺常见但又有点“低调”的HTML标签。你可能在浏览网页时见过它,比如嵌入的YouTube视频、地图,或者一些外部的小工具。它就像网页里开了一扇小窗口,能把另一个网页的内容嵌进来。今天就来聊聊iframe的前世今生、怎么用、包括srcdoc的妙用,它在微前端、传统后端开发、打印场景、通信机制中的应用,以及如何防止别人用iframe内嵌你的网站,尽量说得自然又接地气。iframe是
前端实现大文件分片下载
冒气er
javaScript 前端 express
第一步利用node开发服务端接口//获取文件大小app.get('/length',(req,res,next)=>{res.setHeader('Access-Control-Allow-Origin','*');res.end(''+fs.statSync(`${__dirname}/lifivcyc.gif`).size);});//下载app.get('/',(req,res,next)=
入门指南:Vue.js的基本概念和用法
是小韩呀
vue.js javascript 前端
引言:Vue.js是一种流行的JavaScript框架,用于构建现代化的Web应用程序。它以其简洁易用的API和响应式的数据绑定而闻名,使得开发人员能够更轻松地构建交互性强大的用户界面。本文将介绍Vue.js的基本概念和用法,帮助初学者快速入门。一、Vue.js是一个轻量级、渐进式的JavaScript框架,用于构建用户界面。它的设计目标是通过尽可能简单的API,让开发者能够更高效地开发交互性强大
nodejs关于后端服务开发的探究
墨水白云
node.js
前提在当前的环境中关于webserver的主流开发基本上都是java、php之类的,其中javaspring系列基本上占了大头,而python之流也在奋起直追,但别忘了nodejs也是可以做这个服务的,只是位置有点尴尬,现在就来探究下nodejs做webserver的当前现状。nodejs简介Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用了一个事件驱
使用位运算优化 Vue.js 应用:高效状态管理技巧
结城
vue vue.js 前端 javascript
在Vue.js开发中,位运算(BitwiseOperations)是一种高效的工具,尤其适用于需要管理大量布尔状态或优化性能的场景。位运算通过操作二进制位来实现状态的存储和检查,相比传统的数组或对象操作,内存占用更低,执行速度更快。本篇博客将介绍如何在Vue.js中应用位运算技巧,结合Vue的响应式系统实现高效的状态管理。读vue3响应式源码有感https://github.com/vuejs/c
lvs 集群技术
一.lvs概述LVS是LinuxVirtualServer的缩写,中文通常称为Linux虚拟服务器。它是一个开源的、高性能的、基于四层(传输层,TCP/UDP)的服务器负载均衡解决方案。简单来说,LVS的核心功能就是:将客户端的请求流量智能地、高效地分发到后端的多个真实服务器上,对外表现为一个单一的、高性能、高可用的虚拟服务器。LVS的核心组件和工作原理负载均衡器/调度器/前端服务器:通常被称为D
阿里工程师教你使用 Svelte 构建阅读列表的小技巧
JAVA学习
velte在过去两年中获得了很多赞誉,远非“只是另一个前端框架”。它在2019年JS调查中获得了“年度突破奖”,随后在2020年的满意度评分中名列前茅。它还在StackOverflow2021调查中被评为最受喜爱的Web框架。Svelte以其小包大小、非常好的性能和易用性的组合吸引了开发人员。同时,它还装满了很多好东西。已经提供了一个简单的状态管理解决方案,以及现成的过渡和动画。本介绍性教程将阐明
JavaWeb 文件上传和下载
dawsonenjoy
一、文件上传步骤前端部分1.提供一个post方法的表单,并设置enctype属性(设置请求内容的MIME类型)为multpart/from-data,代表该表单支持文件上传2.提供一个文件上传框:举例:后端部分将内容通过流读取进来,举例:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServl
每日面试题01 HashMap的底层原理
℡余晖^
每日面试题 java 开发语言
一、HashMap的核心存储结构HashMap是基于数组+链表+红黑树的复合数据结构实现的(JDK1.8及以后)。其核心设计目标是通过哈希函数将键(Key)映射到数组的某个下标位置,从而实现O(1)时间复杂度的增删改查操作(理想情况)。初始结构:动态数组HashMap底层维护一个Node[]table数组(JDK1.8起),默认初始容量为16(DEFAULT_INITIAL_CAPACITY=11
前端项目利用Gitlab CI/CD流水线自动化打包、部署云服务
黑心的奥利奥
前端 gitlab ci/cd
叠甲前言本文仅作为个人学习GitLab的CI/CD功能记录,不适合作为专业性指导,如有纰漏,烦请君指正。Gitlab的CI/CD做什么用的自工作以来,去过大大小小公司,有一些公司技术人员专业性欠佳,每当产品经理或测试人员需要最新或者某个版本的包时【比如安卓的apk包,IOS的ipa包,前端的打包静态资源】,开发总是要停下手中的工作,去手动给测试打包,这类手动工作包括了打开某个项目,加载项目依赖,构
每日面试题11:JVM
深入理解JVM:Java的“心脏”如何驱动程序运行?为什么需要JVM?你是否想过,为什么用Java写的程序,能在Windows、Linux、macOS上“无缝运行”?为什么开发者无需为不同操作系统重写代码?这背后的核心功臣,正是Java虚拟机(JavaVirtualMachine,JVM)。JVM是Java生态的“基石”,它不仅实现了“一次编写,随处运行”的跨平台特性,还通过内存管理、垃圾回收等机
Java全栈开发性能优化全攻略:从数据库到前端
AI天才研究院
计算 AI大模型企业级应用开发实战 AI人工智能与大数据 java 性能优化 数据库 ai
Java全栈开发性能优化全攻略:从数据库到前端关键词:Java全栈、性能优化、数据库索引、后端缓存、前端渲染、响应时间、系统瓶颈摘要:本文从全栈视角出发,系统讲解Java开发中数据库、后端服务、前端页面三大核心层的性能优化方法。通过生活类比、代码示例和实战案例,带你一步步理解索引设计、缓存策略、懒加载、防抖节流等关键技术,掌握从“发现瓶颈”到“精准优化”的完整流程,最终实现用户体验与资源效率的双重
如何让用户回到上次阅读的位置?
玛卡巴卡半夜不睡觉
状态模式
【前端实战】如何让用户回到上次阅读的位置?在阅读类、资讯类、博客类网站中,记忆用户上次阅读到的位置,并在下次访问时自动滚动回那个位置,可以大大提升用户体验感。今天我们就来详细讲一讲:前端如何实现用户回到上次阅读的位置,包括基础scroll方法+优化、IntersectionObserverAPI+探针追踪、锚点URLHASH定位跳转等策略实现一个流畅且高效的方案。一、总体思路1、核心目标在用户滚动
JSON和JSONL、python操作
weixin_668
json python
JSONJSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,基于文本、易于读写,并支持多种数据结构。以下是常见的JSON格式及示例:1.简单对象(键值对){"name":"Alice","age":25,"isStudent":true}2.嵌套对象{"person":{"name":"Bob","address":{"city":"NewYork","zipc
Spring Boot、Spring MVC 和 Spring 有什么区别
spring是⼀个IOC容器,⽤来管理Bean,使⽤依赖注⼊实现控制反转,可以很⽅便的整合各种框架,提供AOP机制弥补OOP的代码重复问题、更⽅便将不同类不同⽅法中的共同处理抽取成切⾯、⾃动注⼊给⽅法执⾏,⽐如⽇志、异常等springmvc是spring对web框架的⼀个解决⽅案,提供了⼀个总的前端控制器Servlet,⽤来接收请求,然后定义了⼀套路由策略(url到handle的映射)及适配执⾏h
前后端分离项目进阶1---后端
屋外雨大,惊蛰出没
java 开发语言
前端链接:前端解析一.项目目录二.关键代码分析1)Admin.javapackageimprov1.improv1.entity;publicclassAdmin{privateStringaccount;privateStringpassword;privateStringname;//构造方法、getter和setterpublicAdmin(){}publicAdmin(Stringacco
社交应用全栈开发实战:前后端与数据库整合
本文还有配套的精品资源,点击获取简介:本资源包详细介绍了构建一个社交应用程序的全过程,包括前端、后端以及数据库管理的核心组件和关键功能。Uniapp框架用于开发跨平台的移动端用户界面,Java后端负责处理业务逻辑和数据交互,MySQL数据库用于管理用户信息和动态数据。项目还包括前后端通信、身份验证、性能优化和推送通知服务的实现。学习这些代码可以提升开发者的技能,帮助快速构建社交应用。1.社交APP
【VSCode】上传插件
七灵微
基本理论 vscode ide 编辑器
准备开发环境npminstall-gyogenerator-code@vscode/vsceyogenerator-code:用于创建插件项目骨架vsce:用于打包和发布插件创建插件项目yocode选择插件类型(TypeScript或JavaScript)填写插件名称、描述、是否初始化Git、使用的包管理器等创建完成后进入项目目录并安装依赖:cdmy-extensionnpminstall开发插件
58、JavaScript中的类定义与对象创建
pepper
JavaScript 类定义 对象创建
JavaScript中的类定义与对象创建1.引言在现代Web开发中,JavaScript已经成为不可或缺的一部分。随着JavaScript的发展,面向对象编程(OOP)的概念也逐渐融入其中。通过定义类和创建对象,可以使代码更加模块化、易于维护和复用。本文将详细介绍如何在JavaScript中定义新类,并创建自定义对象,包括属性和方法的添加。2.构造函数的基础构造函数是一种特殊的函数,主要用于创建和
JavaScript进阶:探索模块化、ES6+与前端框架
WayneYalejk
javascript es6 前端框架
随着Web技术的快速发展,JavaScript也在不断演进。ES6(ECMAScript2015)及更高版本的发布为JavaScript带来了许多新特性和改进,使得JavaScript更加强大和易用。同时,模块化编程和前端框架的兴起也极大地推动了前端开发的现代化进程。本文将带您深入探索JavaScript的进阶话题,包括模块化、ES6+新特性以及前端框架的应用。1.模块化编程模块化的重要性:解释模
JavaScript基本语法(二)——数据类型
OmewSPG
常用数据类型#ECMAScript有6种简单的数据类型(原始类型):Undefined,Null,Boolean,Number,String和Symbol(ES6新增Symbol类型的值,在此不会过多涉及)此外还有一种复杂的数据类型:Object在ECMAScript中无法定义自己的数据类型,所有值都必须采用以上七种数据类型之一来进行表示,好在ECMAScript数据类型比较灵活,一种数据类型可以
JavaScript 模块化开发完全指南
小李也疯狂
前端技术 javascript 开发语言 ecmascript 模块化开发
目录前言一、模块化的基本概念1.1什么是模块化?1.2为什么需要模块化?二、JavaScript模块化的发展历程2.1早期解决方案2.1.1命名空间模式2.1.2立即执行函数表达式(IIFE)2.2社区规范2.2.1CommonJS2.2.2AMD(AsynchronousModuleDefinition)2.2.3CMD(CommonModuleDefinition)2.3ES6模块(ESM)三
前端使用 Vue 3,后端使用 Spring Boot 构建 Hello World 程序
天天进步2015
编程技巧 前端 vue.js spring boot
前端使用Vue3,后端使用SpringBoot构建HelloWorld程序前端(Vue3)首先,创建一个Vue3项目。1.安装VueCLInpminstall-g@vue/cli2.创建Vue项目vuecreatefrontend在交互式提示中,选择默认的Vue3预设。3.修改App.vue在frontend/src目录下,修改App.vue文件:{{message}}{{error}}expor
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很好地解决了这个问题,算是框架的一大亮点。对于常见的场景,例如:批量插入/更新/删除,模糊查询,多条件查询,联表查询,