㈠ this的发音问题
this的音标为英 [ðɪs] 美 [ðɪs]。
/ð/发音方法:
1、是除/θ/以外的又一个舌齿音,/ð/与/θ/的主音相同,发音时,先将舌尖微微伸出,置于上下门齿之间,舌身成扁平
2、舌尖和下齿之间的气流通道非常窄小,气流从舌齿间的窄缝中泄出
3、但/ð/是浊辅音,发音时声带必须震动。
[ɪ]发音方法:
1、嘴微微张开,嘴唇放松,上齿和下齿之间约一个小指尖距离。
2、舌尖抵下齿,舌硬腭抬起,舌位稍低,稍后,舌头肌肉松弛。
3、嘴唇向两旁伸开,声带震动发出声音。
[s]发音方法:
1、先要将气流所通过的气流通道收窄,将舌前端抬起,靠近齿龈,但不要贴住
2、发音时气流由舌端与齿龈之间的窄缝中泄出
3、然后,气流通过时发出可听擦音,即气流泻出时伴有嘶嘶声
4、同时/s/时个轻辅音,发音时,声带不震动。
(1)前端this的用法扩展阅读:
this释义:
pron.这,这个;这事,这人;这时;下面所说的事
adj.这,这个;刚过去的,即将到来的;今…,本…
adv.这样地;就是这样;这么地
示例:
Ithought,thisiswhyI'vetravelledthousandsofmiles
我想,这就是我为何不远千里赶来的原因。
㈡ 前端开发的基本方法
CSS部分
盒子边倾斜
clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);
禁止点击事件/鼠标事件“穿透”
div * { pointer-events: none; /*链接啊,点击事件啊,都没有效果了*/ }
用来控制元素在移动设备上使用滚动回弹效果
.main{
-webkit-overflow-scrolling: touch;
}
可解决在IOS中使用overflow:auto 形成的滚动条,滚动不流畅的情况
文字渐变效果
.text-gradient{ background-image: linear-gradient(135deg, deeppink, deepskyblue);
-webkit-background-clip: text; color: transparent;
}
css三角形
#triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid red;
}
实现圆弧
clip-path: ellipse(80%60% at50%40%);
JS部分
JavaScript中检测数组的方法
(1)、typeof操作符
这种方法对一些常用的类型检查没有问题,但对array和null 都判断为object
(2)、instanceof操作符
这个操作符是检测对象的原型链是否指向构造函数的prototype对象的
(3)、对象的constructor属性
const arr = []
console.log(arr.constructor === Array) // true
(4)、Object.prototype.toString
constarr=[]console.log(Object.prototype.toString.call(arr)==='[objectArray]')//true
(5)、Array.isArray()
常用的字符串操作
字符串转化toString()
字符串分隔split()
字符串替换replace()
获取长度length
查询子字符串 indexOf
返回指定位置的字符串或字符串编码 charAt charCodeAt
字符串匹配 match
字符串拼接concat
字符串的切割或提取slice() substring() substr()
字符串大小写转化 toLowerCase toUpperCase
字符串去空格 trim() 用来删除字符串前后的空格
- const str = '11122223333'const uniqueStr = [...new Set(str)].join('')
- arr.rece(callback,[initialValue])
- 跳过第一个索引。如果提供initialValue,从索引0开始。
- const arr = [1, 2, 3, 1, 2, 3]const uniqueArr = [...new Set(arr)]
- var a = {};Object.defineProperty(a, 'name', { value : 'kong', enumerable : true //该属性是否可枚举})
- function a(){}
- var b = new a();console.log(a.prototype.isPrototypeOf(b));//true
- if (/Android/gi.test(navigator.userAgent)) { window.addEventListener('resize', function () { if (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA') { window.setTimeout(function () { document.activeElement.scrollIntoViewIfNeeded();
- }, 0);
- }
- });
- };
- /**
- * 向URL追加参数
- * @function stringifyUrlArgs
- * @param {string} url - URL路径
- * @param {object} params - 参数对象
- * @return {string}
- const stringifyUrlArgs = (url, params) => {
- url += (/?/).test(url) ? '&' : '?'
- url += Object.keys(params).map(key => `${key}=${params[key]}`).join('&') return url
- }
- /**
- * 解析URL参数
- * @function parseUrlArgs
- * @param {string} url - 字符串
- * @return {object}export const parseUrlArgs = url => { const arr = url.match(/([^?=&]+)(=([^&]*))/g) || [] const args = arr.rece((a, v) => {
- a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1) return a
- }, {}) return args
- }
- NP.strip(num) // strip a number to nearest right numberNP.plus(num1, num2, num3, ...) // addition, num + num2 + num3, two numbers is required at least.NP.minus(num1, num2, num3, ...) // subtraction, num1 - num2 - num3NP.times(num1, num2, num3, ...) // multiplication, num1 * num2 * num3NP.divide(num1, num2, num3, ...) // division, num1 / num2 / num3NP.round(num, ratio) // round a number based on ratio
其中第9中三者的区别如下:
(1)slice(), 参数可以是负数,负数表示从字符串最后一个位置开始切割到对应结束位置
(2)substring(),参数不可为负数,切割第一个位置到第二个位置的字符串
(3)substr(), 参数可以是负数,第一个参数是开始位置,第二个参数为切割的长度
字符串去重
常用的数组操作
1、Array.map()
此方法是将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组
2、Array.forEach()
此方法是将数组中的每个元素执行传进提供的函数,没有返回值,注意和map方法区分
3、Array.filter()
此方法是将满足条件的元素作为一个新数组返回
4、Array.every()
此方法将数组所有元素进行判断返回一个布尔值,如果所有元素都符合判断条件,则返回true,否则返回false
5、Array.some()
此方法将数组所有元素进行判断返回一个布尔值,如果有一个元素满足判断条件,则返回true,所有元素都不满足则返回false
6、Array.rece()
此方法为所有元素调用返回函数
7、Array.push()
在数组最后面添加新元素
8、Array.shift()
删除数组第一个元素
9、Array.pop()
删除数组最后一个元素
10、Array.unshift()
在数组最前面增加元素
11、Array.isArray()
判断是否为一个数组
12、Array.concat()
数组拼接
13、Array.toString()
数组转化为字符串
14、Array.join()
数组转化为字符串,并用第一个参数作为连接符
15、Array.splice(开始位置,删除个数,元素)
其中rece使用方法为:
callback (执行数组中每个值的函数,包含四个参数)
1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
2、currentValue (数组中当前被处理的元素)
3、index (当前元素在数组中的索引)
4、array (调用 rece 的数组) initialValue (作为第一次调用 callback 的第一个参数。)
如果没有提供initialValue,rece 会从索引1的地方开始执行 callback 方法,
数组去重:
常用对象方法
1、Object.assign()
用于克隆,两个参数,将第二个对象分配到第一个中
2、Object.is()
用于判断两个值是否相同
//注意,该函数与==运算符不同,不会强制转换任何类型, 应该更加类似于===,但值得注意的是它会将+0和-0视作不同值
3、Object.keys()
用于返回对象可枚举的属性和方法的名称,返回一个属性或方法名称的字符串数组。
4、Object.defineProperty()
劫持变量的set和get方法,将属性添加到对象,或修改现有属性的特性
5、Object.defineProperties()
可添加多个属性,与Object.defineProperty()对应,
6、isPrototypeOf
安卓监听可视区域变化,让输入框移动至可视区域
vue中平滑滚动到某个位置
this.$refs.rule.scrollIntoView({ block: 'start', behavior: 'smooth' })
向URL追加参数
解析URL参数
好用的JavaSrcipt库与模块(包)
日期时间处理库
1、monent.js
2、day.js
day相对于monent要轻量许多
高精度数学运算
number-precision
实用工具库
Lodash
lodash 是一个 JavaScript 实用工具库,提供一致性,及模块化、性能和配件等功能。
Lodash 消除了处理数组的麻烦,从而简化了 JavaScript、 数字、对象、字符串等
㈢ java前端开发,需要撑握哪些技能
html语言,css大部分样式用法,javascript的基本使用,javascript中this的使用,大部分地方还需要会js框架,主流是JQuery,如果想更强一点,要花些时间学Bootstrap。这些都是用来开发网页前端的技术 ,与后端进行交互 的时候要会Json的数据格式转化
㈣ javascript中apply,call和bind的区别
有点绕的,下面用代码说明一下这三个函数的区别吧:
varname='global';
varperson={
name:'zero'
};
//输出姓名、年龄和职业
functionprintInfo(age,job){
console.log(this.name,age,job);
}
//直接调用
printInfo(20,'前端工程师');
//打印:global20前端工程师
//因为默认的上下文是window,所以this.name是全局定义的global,如果我们想打印出来zero的话,就需要改变函数执行的上下文
printInfo.call(person,20,'前端工程师');
printInfo.apply(person,[20,'前端工程师']);
//这两种方式是一样的,第一个参数都是传进去的上下文,this.name取的是person.name,所以打印出来的名字就是zero了,后面的为age和job,只是参数传递的方式不一样,apply比较特殊,把要传的参数放在数组里面
//而bind和以上两种有区别,bind是es5定义的新方法,用来返回一个有自己上下文的函数,用法也比较类似:
printInfo.bind(person)(20,'前端工程师');
//printInfo.bind(person)这一块是返回的以peron为上下文的函数,后面的(20,'前端工程师')是函数调用
㈤ this.Focus();是什么意思啊
当前页面在最前端
㈥ web前端什么指令表示跳过其下一条指令
能否问得详细一点
如果是Vue的话,
this.$nexttick(()=>{})可以跳过当前生命周期,等待mounted生命周期结束后才执行。
㈦ Web 前端怎样入门
方法:
第一:理清Web前端的知识结构。要想高效学习Web前端知识,首先应该搞清楚Web前端都包括哪些技术结构。Web前端开发虽然技术难度并不高,但是技术细节却比较多,内容也比较杂。Web前端的基础包括三大部分,包括Html、CSS和JavaScript,其中JavaScript是学习的重点,也是难点。另外,vue等框架也是需要熟练掌握的。
第二:紧跟技术发展趋势。目前Web前端的技术发展趋势有三个,其一是前端开发数据化;其二是前端开发高效化;其三是前端开发全栈化。前端开发数据化主要是大数据发展的影响,在大数据的推动下,Web前端逐渐涉及到了大量的数据展示任务。前端开发高效化主要体现在Web前端正在进行独立部署,前端与后端的沟通主要通过资源接口的方式来进行。前端开发全栈化也是一个比较明显的趋势,比如Nodejs的应用。
第三:注重动手实践能力的培养。学习前端开发一定要注重动手实践能力的培养,因为前端开发的细节比较多,所以只有多操作才能逐渐熟悉。
前端开发目前被称为“大前端”,整个前端开发也被赋予了更多的含义,包括Web前端开发、移动端开发、大数据呈现端开发以及部分后端开发任务等等。所以,想要在前端行业中走的更远,一定要注重知识结构的丰富性。
与其他编程语言相比,前端是公认的入行门槛较低的一门语言,但依然有很多人在学习之前会问零基础学习web前端难不难,要多久才能学会。学习的难易和时间当然是取决于学习的方式。
前端入门简单,但是深入学习之后,还是有一定学习难度的。如果你是零基础自学web前端的话,那么所花费的时间与精力是不可估计的。 如果系统学习5个月的时间可以帮助你快速成长为合格的web前端工程师。
至于视频教程,我这里有很多前端的全套教程,如果你需要的话,可以加一下我的学习交流裙裙,找我要就行了!
㈧ 如何系统地学习前端
目前入门前端的人群分类
1、计算机相关专业出身系统走过计算机的理论基础,比如计算机组成原理、操作系统原理、计算机网络、算法数据结构、设计模式,至少用过两门以上编程语言(强类型+弱类型)。
优点:理论、架构方面扎实,有整体计算机思维,内功不错,外功学起来比较快。
缺点:部分人,前端相关细节技术不扎实,不过花时间能很快搞定。
2、非计算机出身自学(也包括计算机专业没好好学的)理论基础薄弱,后来因个人兴趣或者职业需求,自学前端开发技能。
优点:自学能力比较强,能够根据自己的兴趣规划学习内容。
缺点:部分人对前端没有整体的学习框架 ,属于东一片,西一片,不成体系,部分人计算机没有整体思维,建议系统梳理下前端知识体系结构,该补的还是要补起来。
门前端时的一些困境
1、因一些基础算法、数据结构理论不扎实导致一些编程思维难于理解。比如 原型链,如果清楚 数据结构中链表结构,那么这个东西不难理解,再比如 哈希值,懂得数据结构中哈希表,哈希值也就迎刃而解。
2、计算机体系结构、操作系统理论、网络理论不扎实导致到后期一些东西难于理解。比如有同学从前端学习入手,后来学习node开发 ,在 I/O ,进程、线程、IPC 、线程锁方面有些概念就比较难于理解,而导致不能很好得使用node 的api 。
3、前端整体体系架构没有做过深入思考。
导致用会用,但不知道为什么用,用另外一个有什么区别。
4、学习环境中无高手。
没有高手能够指导自己进入下一个层次。
5、有意识但是没有行动我的网盘收集了一堆资料或者一堆视频,然后就没有然后了 。
如何系统学习前端
网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。如果你现在是零基础学员,大致可以按如下思路学习系统学习:
基础部分
1、HTML + CSS 这部分学习,可以模仿一些网站做些页面。在实践中积累了一些经验后,可以系统的读一两本书,推荐《Head First HTML 与 CSS 中文版》,这本书讲的太细了,我没能拿出耐心细读。你可以根据情况斟酌。
2、Java 要学的内容实在很多,如果没有其他编程语言的基础的话,学起来可能要费些力,建议马上看《Java语言精粹》,JS是一门很混乱的语言,这本书能够帮助你区分哪些是语言的精华,哪些是糟粕,对于语言精华,应该深入学习。糟粕部分能看懂别人写的代码就行,自己就不用尝试了。
进阶部分
有了以上基础,就可以进行一般的静态网页设计,不过对于复杂的页面还需要进一步学习。
1、CSS。必看《精通CSS》,看完这本书你应该对:盒子模型,流动,Block,inline,层叠,样式优先级,等概念非常了解了。作为练习可以看下《CSS艺门之匠》这本书,它对标题,背景,圆角,导航条,table,表单等主题都有详细的介绍。
2、Java。上面提到内容还不足以让你胜任JS编程。在有了基础之后,进一步学习内容包括:
a) 框架。
推荐jQuery,简单易用,学习方法也很简单,照着产品文档做几个页面就行了,不用面面俱到,以后遇到问题查文档就行了。框架可以帮你屏蔽浏览器的差异性,让你能更专注与Web开发学习的精髓部分。补充:可以使用 Codecademy 学习 Java,jQuery,用户体验真的很好(感谢 TonyOuyang )。
b) Java 语言范式 。这个名字可能并不恰当,只是我找不到可以描述“面向对象”,“函数式”这个两个概念的概念。Java不完全是一个面向对象的语言,它的很多设计理念都有函数编程语言的影子,甚至说如果你不用面向对象,完全可以把它理解成一门函数式编程语言。
Java的很多语言特性,都是因为他具有函数式语言的特点才存在的。这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解,维基网络,网络会是你的帮手,另外推荐《Object Oriented Java》,应该有中文版。对与函数式编程我了解的也不系统,不好多说,可以自己网络一下。
c) Java 语言内部机制。必须弄清如下概念:JS 中变量的作用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(一般函数,对象的方法,apply,call),以及四种调用方式下,‘this’指向的是谁。这部分内容你会在《Java语言精粹》中详细了解。另外,你必须理解 json。
d) dom编程,这个Web前端工程师的核心技能之一。必读《Dom编程艺术》,另外《高性能 Java》这本书中关于dom编程的部分讲的也很好。
e) Ajax编程,这是另一核心技术。Ajax建议在网上查些资料,了解这个概念的来龙去脉,网络,维基网络上的内容就足够了。真正编程是很容易的,如今几乎所有框架都对Ajax有良好的封装,编程并不复杂。
f) 了解浏览器差异性。这部分包括CSS和js两部分,浏览器差异内容很多,建议在实践中多多积累。另外对于浏览器的渲染模式,DOCTYPE等内容应该系统学习。
3、HTML5和CSS3 。HTML5规范已经于2014年10月28日发布了,移动端HTML5和CSS3已经得到了非常广泛的使用,必知必会呀。
升级部分
有了以上知识,对于大多数小型网站,你应该已经可以写出能够工作的代码了。但要想成为更专业的前端,你还需继续努力。更高的要求大概还有四方面:1)易维护,2)可测试,3)高性能,4)低流量(移动端)。
易维护。对于页面你该理解‘样式’,‘数据’,‘行为’三者分离,对应的当然就是CSS,HTML,js。对于js代码,你最好了解设计模式,重构,MVC等内容。
可测性。
高性能。必读《高性能Java》
低流量。移动端关注比较多。
额外补充部分
前端项目同样面临软件生命周期的各个环节,首先是代码管理,你必须学会使用Svn和Git。其次是代码的构建,如今前端代码构建已经不是简单的压缩一下了,需要进行依赖管理、模块合并、各种编译,比需要学会使用Grunt、Gulp等前端构建工具。
以上内容只是简单说了前端学习的顺序。对于前端开发,基本内容就这些了,可以根据自己的兴趣爱好选择性学习以下内容。
1、交互设计。大公司依然有专业人士搞这些,不过不懂交互的前端一定不是好前端。推荐《简约至上》。
2、后端。
应该说前端工程师必须至少了解一门后端语言,不过如果爱好也可深入学习,入手难度比较低的应该是PHP了。这部分由可分为基于页面,基于框架两种。大型项目都是基于框架开发的,建议至少了解一个MVC框架,比如PHP的Ci、Yii、Yaf 等,好还框架的设计思想都大同小异。如今NodeJs在大公司已经得到普遍的使用,推荐大家使用在Node上使用Express框架做一些后端服务的开发。
3、Android和IOS开发。
时至今日,前端的工作领域已经非常广泛,native的界面开发本质上也是前端开发,个大公司都面临着Native环境和web环境页面同时维护的问题,如果能够在技术上得到统一,将会有巨大的价值。
如何才能快速入门前端
1、学习东西,自学是一种途径,然而在自学的过程中,很多人处于不知道自己不知道的状态。
2、另一种是跟着高手,开阔视野,达到知道自己不知道的境界,从而有方向,在短时期内进入到一个新的境界,节约时间成本。
㈨ 外部js文件里不能用this获取对象么外部js文件怎么获取当前对象前端问题
function getfocus(obj){
obj.value="";
}
onfocus="getfocus(this);" />加个分号
㈩ this.getSqlMapClientTemplate和getSqlMapClientTemplate区别
this.getSqlMapClientTemplate是一个函数中的执行命令。将函数抽象化后可以应用到很多地方,可以理解为this就是“我”的意思,而getSqlMapClientTemplate就是一个单独的指令,你只能用在一个地方,如果另一个行为需要用到你就要继续编辑一次