javascript 权威权威指怎么样

酷勤网 C 程序员的那点事!
当前位置: >
浏览次数:次
《javascript权威指南》这本书就像是js界的圣经,对于大神和新手都应该是必读书。但是这本近千页的书已经厚到让人望而生畏,要通读它不仅要时间也需要毅力。为了提升自己在js语言上的深度,所以抱着工匠精神开始研读,此文包含书中实用性较强的一些知识点和代码,算做读书笔记吧~
这一章参照的是W3C定义的3级DOM事件,现在更名为了。
文档加载事件
load。直到文档和所有图片加载完毕时才发生
DOMContentLoaded。当文档加载解析完毕且所有延迟脚本都执行完毕时会出发。优先使用
readystatechange。HTML5标准化的事件,在load事件之前触发。
定义whenReady函数,类似onLoad函数。当文档就绪时,传递给whenReady的函数就会作为Document对象的方法调用。优先使用DOMContentLoaded和readystatechange事件。
123456789101112131415161718192021222324252627282930
var whenReady = (function(){
var funcs = [], //需要运行的函数
ready = false, //为避免重复执行
function handler(e) {
if(!ready) {
//如果发生readystatechange事件,但状态不是complete则文档未准备好
if('readystatechange'===e.type && 'complete'!==document.readyState) {
for (i=0;i&funcs. i++) {
funcs[i].call(document);
if(document.addEventListener) {
document.addEventListener('DOMContentLoaded', handler);
document.addEventListener('readystatechange', handler);
window.addEventListener('load', handler);
} else if(document.attachEvent) {
document.attachEvent('onreadystatechange', handler);
window.attachEvent('load', handler);
return function(f){
if (ready) f.call(document); //若准备完毕则运行
else funcs.push(f);
//否则加入队列
clientX和clientY表示鼠标坐标
altKey、metaKey、ctrlKey、shiftKey
HTML5中元素添加draggable属性之后就可以实现dragstart和dragend事件。
定义drag函数实现文档元素拖动操作。
drag函数绑定到mousedown事件,整个逻辑也是比较简单在mousedown事件开始时记录坐标点,然后在mousemove事件时改变css样式来实现dom元素移动,同时结束时注销事件。不过需要注意的就是dom元素必须是非静态定位。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
function drag(){
//获取坐标
function getScrollOffsets(w) {
var d = {};
//使用指定窗口或者当前窗口
//现代浏览器
if (w.pageXOffest != null) {
x: w.pageXOffest,
y: w.pageYOffset
//标准模式下的IE
if (patMode === 'CSS1Compat') {
x: d.documentElement.scrollLeft,
y: d.documentElement.scrollTop
//怪医模式下的浏览器
x: d.body.scrollLeft,
y: d.body.scrollTop
var scroll = getScrollOffsets(); var startX = event.clientX + scroll.x; var startY = event.clientY + scroll.y; var origX = elementToDrag.offsetL var origY = elementToDrag.offsetT var deltaX = startX - origX; var deltaY = startY - origY;
//注册鼠标移动和鼠标释放事件 if (document.addEventListener) {
document.addEventListener(&mousemove&, moveHandler, true);
document.addEventListener(&mouseup&, upHandler, true) } else if (document.attachEvent) {
elementToDrag.setCapture();
elementToDrag.attachEvent(&onmousemove&, moveHandler);
elementToDrag.attachEvent(&onmouseup&, upHandler);
elementToDrag.attachEvent(&onlosecapture&, upHandler) } if (event.stopPropagation) event.stopPropagation(); else event.cancelBubble = if (event.preventDefault) event.preventDefault(); else event.returnValue =
//移动鼠标时移动元素 function moveHandler(e) {
if (!e) e = window.
var scroll = getScrollOffsets();
elementToDrag.style.left = (e.clientX + scroll.x - deltaX) + &px&;
elementToDrag.style.top = (e.clientY + scroll.y - deltaY) + &px&;
if (e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true }
//拖拽结束,注销事件 function upHandler(e) {
if (!e) e = window.
if (document.removeEventListener) {
document.removeEventListener(&mouseup&, upHandler, true);
document.removeEventListener(&mousemove&, moveHandler, true)
} else if (document.detachEvent) {
elementToDrag.detachEvent(&onlosecapture&, upHandler);
elementToDrag.detachEvent(&onmouseup&, upHandler);
elementToDrag.detachEvent(&onmousemove&, moveHandler);
elementToDrag.releaseCapture()
if (e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true }}
文本/键盘事件
keypress。常用的高级键盘事件。
textinput。时3级DOM事件规范定义的通用事件(来源包括键盘/粘贴/拖放/声音/手写)
textInput。webkit浏览器支持类似textinput的事件。
写一个过滤键盘输入的函数,当用户输入了不允许字符时显示消息元素,否则隐藏它。
1234567891011121314151617181920212223242526272829303132333435363738
(function() { var inputelts = document.getElementsByTagName(&input&); for (var i = 0; i & inputelts. i++) {
var elt = inputelts[i];
if (elt.type != &text& || !elt.getAttribute(&data-allowed-chars&))
if (elt.addEventListener) {
elt.addEventListener(&keypress&, filter, false);
elt.addEventListener(&textInput&, filter, false);
elt.addEventListener(&textinput&, filter, false)
elt.attachEvent(&onkeypress&, filter)
} } function filter(event) {
var e = event || window.
var target = e.target || e.srcE
var text =
if (e.type === &textinput& || e.type === &textInput&) text = e.
var code = e.charCode || e.keyC
if (code & 32 || e.charCode == 0 || e.ctrlKey || e.altKey)
var text = String.fromCharCode(code)
var allowed = target.getAttribute(&data-allowed-chars&);
var messageid = target.getAttribute(&data-messageid&);
if (messageid) var messageElement = document.getElementById(messageid);
for (var i = 0; i & text. i++) {
var c = text.charAt(i);
if (allowed.indexOf(c) == -1) {
if (messageElement) messageElement.style.visibility = &visible&;
if (e.preventDefault) e.preventDefault();
if (e.returnValue) e.returnValue =
return false
if (messageElement) messageElement.style.visibility = &hidden& }}());
将输入的字符自动转换为大写
1234567891011121314151617
function forceToUpperCase(element) { if (typeof element === &string&) element = document.getElementById(element); element.oninput = element.onpropertychange = upcaseOnPropertyC function upcase(event) {
this.value = this.value.toUpperCase() } function upcaseOnPropertyChange(event) {
var e = event || window.
if (e.propertyName === &value&) {
this.onpropertychange =
this.value = this.value.toUpperCase();
this.onpropertychange = upcaseOnPropertyChange
节省内存,适用于表格/列表等重复性dom元素。基本原理就是将事件绑定到祖先元素上,然后判断事件对象target,如果为对应的子元素则执行对应的逻辑。
事件创建/分发
var event = document.createEvent('Event');event.initEvent('click');var element = document.getElementById('zdl');element.dispatchEvent(event);
这本书真是内容翔实,枯燥难读。这一章的内容看了几遍才决定以百度脑图和代码实例相结合的方式,如果有更好的建议可以发送邮件给我~感谢阅读
百度脑图下载地址:
& 相关主题:| 时间排序
蟹妖。&br&前端行业太浮躁,加之培训机构各种炒作。&br&所以,如果你只是因为『看着同学培训完拿着上万的工资,很是羡慕嫉妒恨啊』这个理由的话,感觉还是算了吧。萝卜多了坑自然少,退热之后发现不是想象中的样子反而更加失望。&br&要是真感兴趣就从基础看起吧。
蟹妖。前端行业太浮躁,加之培训机构各种炒作。所以,如果你只是因为『看着同学培训完拿着上万的工资,很是羡慕嫉妒恨啊』这个理由的话,感觉还是算了吧。萝卜多了坑自然少,退热之后发现不是想象中的样子反而更加失望。要是真感兴趣就从基础看起吧。
没事翻翻也挺好,尤其是工作经验,代码量不足那时候
没事翻翻也挺好,尤其是工作经验,代码量不足那时候
既然有兴趣,那就不要怂,就是干,干到自己哭 。。
既然有兴趣,那就不要怂,就是干,干到自己哭 。。
谢邀。&br&建议去阿里云、腾讯云什么的弄一台服务器。鼓捣鼓捣,做实验。&br&自己从头到尾写一个博客系统。前后端、数据库、nginx各种都自己搞。&br&搞完了再总结一下然后扩展知识面。&br&&br&上网找前端程序员技能树。如果你想往这方面发展,就着重了解这个。&br&后端技能树、dba技能树、运维技能树。都了解一下。&br&&br&对于语言啊、框架啊不要去问“这个语言有钱途么”,“这个框架火不火”。&br&都去了解一下,要有自己的认识和思考。
谢邀。建议去阿里云、腾讯云什么的弄一台服务器。鼓捣鼓捣,做实验。自己从头到尾写一个博客系统。前后端、数据库、nginx各种都自己搞。搞完了再总结一下然后扩展知识面。上网找前端程序员技能树。如果你想往这方面发展,就着重了解这个。后端技能树、dba技…
javascript是大杀器 &br&移动 桌面 服务器 mapreduce 大数据 前端 游戏 lambda型的微服务&br&几乎无所不能&br&但清楚阐明js原型链的图 整个web上都没见过 或者不完善&br&&u&&b&js如同teenager嘴里的性 真懂的人不多&/b&&/u&&br&它的进阶难度比java objectivec delphi c#都大&br&原因很简单 &u&&i&&b&类继承是原型继承的一个子集&/b&&/i&&/u& 嘿嘿&br&&br&目测大部分搞后端前台的程序员是没用的 自从nodejs诞生后&br&&br&一个产品涵盖桌面 移动 前端 后台 全平台 起步2·3个人就可以了&br&(原生iOS android 桌面 抗攻击的后端前台)&br&&br&前端的框架都是打工的人用的&br&htmljscss才是终极框架 玩精了出nb的奇迹&br&&u&&b&偶的一个校友专精这个 鸟丝出身 seo中国真牛人 白手起家 目前身价50亿&/b&&/u&&br&用渣seo框架的人越多 他越高兴&br&&br&这是技术做到极致 生的财富 和一屁俩晃儿的大忽悠马云 和彻底的骗子乐视假大忽悠 本质不同的&br&&br&哈哈
javascript是大杀器 移动 桌面 服务器 mapreduce 大数据 前端 游戏 lambda型的微服务几乎无所不能但清楚阐明js原型链的图 整个web上都没见过 或者不完善js如同teenager嘴里的性 真懂的人不多它的进阶难度比java objectivec delphi c#都大原因很简单 类继承…
泻药,以动手为中心就对了,代码是个实践课,或者应用课,敲代码
泻药,以动手为中心就对了,代码是个实践课,或者应用课,敲代码
蟹妖...&br&&br&特地去把犀牛书第六版下了一遍,才理解题主的意思。 大概的意思 &a data-hash=&107fab185e63a37eef90& href=&///people/107fab185e63a37eef90& class=&member_mention& data-editable=&true& data-title=&@ivan peng& data-tip=&p$b$107fab185e63a37eef90& data-hovercard=&p$b$107fab185e63a37eef90&&@ivan peng&/a&
已经写了,这里和closure什么的没有关系,而所谓的应该要理解的“不同”是指:由于Function在JavaScript里是作为First-class存在的,因此既可以作为函数的参数,亦可以作为函数的结果&br&&br&比方说书里的odd函数是一连串函数组合的结果,而不再需要显式的声明内部的逻辑&br&&div class=&highlight&&&pre&&code class=&language-js&&&span class=&kd&&let&/span& &span class=&nx&&not&/span& &span class=&o&&=&/span& &span class=&nx&&f&/span& &span class=&o&&=&&/span& &span class=&p&&(...&/span&&span class=&nx&&args&/span&&span class=&p&&)&/span& &span class=&o&&=&&/span& &span class=&o&&!&/span&&span class=&nx&&f&/span&&span class=&p&&.&/span&&span class=&nx&&apply&/span&&span class=&p&&(&/span&&span class=&kc&&null&/span&&span class=&p&&,&/span& &span class=&nx&&args&/span&&span class=&p&&)&/span&
&span class=&kd&&let&/span& &span class=&nx&&even&/span& &span class=&o&&=&/span& &span class=&nx&&x&/span& &span class=&o&&=&&/span& &span class=&nx&&x&/span& &span class=&o&&%&/span& &span class=&mi&&2&/span& &span class=&o&&===&/span& &span class=&mi&&0&/span&
&span class=&kd&&let&/span& &span class=&nx&&odd&/span& &span class=&o&&=&/span& &span class=&nx&&not&/span&&span class=&p&&(&/span&&span class=&nx&&even&/span&&span class=&p&&)&/span&
&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span&&span class=&mi&&2&/span&&span class=&p&&,&/span&&span class=&mi&&3&/span&&span class=&p&&,&/span&&span class=&mi&&4&/span&&span class=&p&&,&/span&&span class=&mi&&5&/span&&span class=&p&&,&/span&&span class=&mi&&6&/span&&span class=&p&&].&/span&&span class=&nx&&map&/span&&span class=&p&&(&/span&&span class=&nx&&odd&/span&&span class=&p&&)&/span& &span class=&c1&&// =& [true, false, true, false, true, false, true, false]&/span&
&/code&&/pre&&/div&注意上面,not函数的参数f是一个函数,但同时,not这个函数的结果(returnValue) 是另外一个函数 :(...args) =& !f.apply(null, args), 诚然这里确实运用到了闭包,但闭包在这里并不是最重要的概念。&br&&br&P.S:这个例子特别简单,但是在实际场景中可以被拓展开来,帮助实现模块的解耦以及代码的复用。&br&&br&当然,理解high order function以后会对理解ES7的装饰器特性有很好的帮助,因为本质上,装饰器就是一个对输入的函数f 应用一定逻辑最后变换成另外一个函数 g 的shortcut。&br&&br&&br&大抵就是这样~
蟹妖...特地去把犀牛书第六版下了一遍,才理解题主的意思。 大概的意思
已经写了,这里和closure什么的没有关系,而所谓的应该要理解的“不同”是指:由于Function在JavaScript里是作为First-class存在的,因此既可以作为函数的参数,亦可以作为…
多谢邀请,事情少正好学东西。不清楚你是学什么专业的,JS编程也是需要编程基础的,不过有兴趣最好。JS看起来简单学深了也是不容易的,而且前端技术发展变化较快,一会出一个新框架,一会出一个构建工具,要有一颗求知的心。JS还受用户的客户端环境相关,浏览器,系统等,这些都需要欣然接受。&br&简单说这两点吧,总之兴趣是最好的老师,现在前端教程和书籍很多了,只学JS恐怕不够,加油↖(^ω^)↗
多谢邀请,事情少正好学东西。不清楚你是学什么专业的,JS编程也是需要编程基础的,不过有兴趣最好。JS看起来简单学深了也是不容易的,而且前端技术发展变化较快,一会出一个新框架,一会出一个构建工具,要有一颗求知的心。JS还受用户的客户端环境相关,浏…
“两个函数”指的是1.前文定义的map()函数,var map=function(a, f){return a.map(f);}略去兼容ES3 代码;2.此处定义的mapper()函数,var mapper=function(f){return function(a){return map(a, f);};}。&br&map函数输入是两个参数(数组加函数对象),输出是数组;mapper函数输入是一个参数(函数对象),输出是函数对象。以上为不同。“这一点”,指的是以上不同。&br&“理解”&br&其实意思就是初中学习函数的h=f(g)而已,并无关于闭包啊什么的概念,之所以要制造出h函数(即mapper函数)是因为,这样我就可以生产一系列的f(g1)、f(g2)、f(g3)等函数,可以使用。
“两个函数”指的是1.前文定义的map()函数,var map=function(a, f){return a.map(f);}略去兼容ES3 代码;2.此处定义的mapper()函数,var mapper=function(f){return function(a){return map(a, f);};}。map函数输入是两个参数(数组加函数对象),输出是数组…
上面这些人很难看得出是不是真大牛,但是来司徒正美的群来找司徒正美,他是真大牛,听他一席话胜读十年书。&br&能学透他的avalon你就出师啦,月薪几十万不成问题。
上面这些人很难看得出是不是真大牛,但是来司徒正美的群来找司徒正美,他是真大牛,听他一席话胜读十年书。能学透他的avalon你就出师啦,月薪几十万不成问题。
谢邀&br&题主的问题本身是个问题,社会上根本没有js工程师这个岗位;&br&js工程师说的是创造js这门语言么?不好意思,ecma在做这个事情;&br&&br&题主本意能理解&br&我的建议是:&br&1:彻头彻尾的把js语法规范过一遍:es5重点,es6参考;技术群太多前端工程师问 var xxx = [1,2].map()....为什么如何如何;个人觉得工资太好拿了;&br&2:计算机基础[操作系统、数据结构、编译原理、网络];跟n个人解释过“实例化”,人家还是眼睛眨吧眨吧的看着你。&br&3:学点c++;&br&4:没事去看看ecma是怎么定义js的解释的&br&5:差不多了可以去了解下webkit源码;&br&6:当然nodejs也不能放过;&br&&b&7:入门不要学jquery,再去学dom,应该反过来!&/b&&br&8:补充点编程方法论之类的:设计模式,面向对象啪啦啪啦;
谢邀题主的问题本身是个问题,社会上根本没有js工程师这个岗位;js工程师说的是创造js这门语言么?不好意思,ecma在做这个事情;题主本意能理解我的建议是:1:彻头彻尾的把js语法规范过一遍:es5重点,es6参考;技术群太多前端工程师问 var xxx = [1,2].map…
html5+css3是前端大趋势,后台趋势则是nodejs,只做前端js不用研究太深。至于那些前端开发好好的框架不用还在用全部用原生js的公司,那效率简直是在作死。
html5+css3是前端大趋势,后台趋势则是nodejs,只做前端js不用研究太深。至于那些前端开发好好的框架不用还在用全部用原生js的公司,那效率简直是在作死。
1、《eloquent javascript》+熟悉HTML+CSS&br&2、前端项目实践+《javascript权威指南》&br&3、了解MEAN等框架+选择性熟悉其中某个技术栈&br&4、看项目积累和机遇选择某些技术栈方向重点研究,这个阶段基本上应该有自己的想法了
1、《eloquent javascript》+熟悉HTML+CSS2、前端项目实践+《javascript权威指南》3、了解MEAN等框架+选择性熟悉其中某个技术栈4、看项目积累和机遇选择某些技术栈方向重点研究,这个阶段基本上应该有自己的想法了
js推荐从原生学起,尽量不要一开始就使用jquery或者那些mvvm框架,这样会使你产生js开发好简单的错觉,其实只是你在使用框架时根本看不到其中的实现细节,建议至少看完&&js权威指南&&和&&语言精粹&&这两本书以及知道一些es6的新特性,比如模块这些以后再去接触那些框架,这样至少你知道闭包、原型这些基本概念,可以了解它们大概的实现机制。
js推荐从原生学起,尽量不要一开始就使用jquery或者那些mvvm框架,这样会使你产生js开发好简单的错觉,其实只是你在使用框架时根本看不到其中的实现细节,建议至少看完&&js权威指南&&和&&语言精粹&&这两本书以及知道一些es6的新特性,比如模块这些以后再去…
这个问题一直思索,也查看了许多相关资料,还是没有释疑。翻看了英文原版:&br&When a function is defined, it stores the scope chain then in effect.
When that function is invoked, it creates a new object to store its local variables, and adds that new object to the stored scope chain to create a new, longer, chain that represents the scope for that function invocation. &br&发现是中文翻译的问题,翻译之后更难理解了。翻译成这样或许更好:&br&当一个函数被定义,它保存了它的作用域链,并开始生效。当调用这个函数时,它创建一个新的对象来存储它的局部变量,并将这个对象添加至保存的那个作用域链上,从而创建一个新的,更长的链来代表函数调用的作用域。&br&GF说,回答自己的提问有装逼之嫌,特此备注:有同样疑惑的人可以参考。
这个问题一直思索,也查看了许多相关资料,还是没有释疑。翻看了英文原版:When a function is defined, it stores the scope chain then in effect.
When that function is invoked, it creates a new object to store its local variables, and adds that…
说作用域链,首先要理解作用域,以及什么时候使用这条“链”。&br&java的作用域是是以块区分的,也就是{},这个没啥说的。&br&1.JavaScript的作用域,是以方法来区分的,&br&function a(){&br&
var i=0;&br&
if(true){&br&
// 这里的i和外面的i 处于同一个作用域下,所以这里会覆盖外面的i&br&
console.log(i);//1&br&} &br&2.作用域链,用个例子&br&function a(){&br&var n=0;&br& function b(){&br&
console.log(n);&br& } &br&&br&}&br&var fn=a();//fn获得b函数的引用&br&var n=1;&br&fn();//fn()相当于执行b(),结果是0&br&js在查找变量的时候,会在b函数里找,找不到会去b函数的父作用域a里找,还找不到会在去a的父作用域去找,这里a的父作用域是全局了。&br&(作用域是在创建定义的时候就确定了的,函数创建在谁的作用域下,谁就是它的父作用域 ,该例子中b函数的父作用域是a函数,a函数的作用域是全局)&br&因此js在寻找的时候,就会沿着这条线寻找下去,哪里找到就哪里停止寻找,直到全局还找不到,就表示不存在。&br&而这条线,便叫做作用域链。&br&&br&以上是我的理解,有不对的欢迎指正。
说作用域链,首先要理解作用域,以及什么时候使用这条“链”。java的作用域是是以块区分的,也就是{},这个没啥说的。1.JavaScript的作用域,是以方法来区分的,function a(){ var i=0; if(true){ var i=1; // 这里的i和外面的i 处于同一个作用域下,所以这…
我也是大四准毕业,没有去实习,自学中,我之前都没有接触过编程,大学学的是土木专业。知乎上有很多关于学习JavaScript的问题,多找找看一下就了解个大概了。0基础真的好难。-_-可能是我太笨了,共勉吧。
我也是大四准毕业,没有去实习,自学中,我之前都没有接触过编程,大学学的是土木专业。知乎上有很多关于学习JavaScript的问题,多找找看一下就了解个大概了。0基础真的好难。-_-可能是我太笨了,共勉吧。
泻药&br&实习的时候,没啥工作很正常了,趁有时间学习感兴趣的,方向很对&br&楼主想向js工程师发展,可以理解为想学习web前段吧,现在web前段还是很火的,一般公司都会招这样的web前段,学习就看当前那些技术比较火,学习就可以了,比如HTML5 ,node.js jquery等等;不过前提基础也要扎实,楼主好好加油
泻药实习的时候,没啥工作很正常了,趁有时间学习感兴趣的,方向很对楼主想向js工程师发展,可以理解为想学习web前段吧,现在web前段还是很火的,一般公司都会招这样的web前段,学习就看当前那些技术比较火,学习就可以了,比如HTML5 ,node.js jquery等等…
首先,我不认为有公司会不给任何一个优秀员工任务。我建议你从工作态度,积极性,和每天工作报告上找原因。虽然这和js 工程师没半点关系。但是我为你本人担心。&br&原因。 成为一名独当一面的工程师不只要学会技术,更要明白自己在此项工程中的位置和责任。从更全面的角度考虑问题。&br&&br&纯技术角度讲,学好js标准 es5 es6 es7, 会使用现在最火的框架angular react,然后就是要前后端都接触。我个人认为,网站工程设计中 api设计是最基础的,也是必须要的。api来连接前台和后台,因此工程是要有全栈技术。对于js工程师 node是必修,但绝不仅限于此。要广泛的了解后端基础知识,才能算是一个好的js工程师。&br&&br&这里并没有提到很多工程化,架构和js安全的问题。我认为他们对于初学者来说还太早。 学好基础吧。
首先,我不认为有公司会不给任何一个优秀员工任务。我建议你从工作态度,积极性,和每天工作报告上找原因。虽然这和js 工程师没半点关系。但是我为你本人担心。原因。 成为一名独当一面的工程师不只要学会技术,更要明白自己在此项工程中的位置和责任。从更…
没工作给你还不天高任鸟飞&br&&br&快学自己感兴趣的东西啊
没工作给你还不天高任鸟飞快学自己感兴趣的东西啊
泻药&br&js工程师啊。。&br&我不确定你们公司是否有相应的职位。&br&大部分公司有的是前端职位,但是前端的话单纯只会js初期可能看不出问题,等到你要承担的事情多了,会发现 html/css 是避不了的知识点。答者刚开始入前端坑的时候就是只会js,会一点点html/css,但是现在发现css有时候成为制约我实现想法的短板,现在也一直在补这一块。&br&当然,如果你的方向是nodejs的后端开发,那是可以不必学习css了。但是我的意见是,想做node的后端开发,只会js你是很难做好的。。
泻药js工程师啊。。我不确定你们公司是否有相应的职位。大部分公司有的是前端职位,但是前端的话单纯只会js初期可能看不出问题,等到你要承担的事情多了,会发现 html/css 是避不了的知识点。答者刚开始入前端坑的时候就是只会js,会一点点html/css,但是…
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 javascript 权威 的文章

 

随机推荐