因为项目问题,需要学习 js - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
harry890829
V2EX    Javascript

因为项目问题,需要学习 js

  •  
  •   harry890829 2017-02-03 16:45:40 +08:00 6624 次点击
    这是一个创建于 3196 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了 3 年 c/c++了,最近因为项目问题,我需要学习些前端的知识。

    上次发了个帖子,说想把项目改成 html5 的,然后又要兼容 xp 后来被网友嘲笑了……用 js 是不是能够做到?

    对于 js 的了解并不多,但是也听说过 js 有很多库,我现在需要上手的话,应该如何?直接拿手册上,从 demo 开始?还是如何?

    麻烦大家推荐相应的系列神马的,多谢,基础入门哈,毕竟安装环境神马的都不知道……

    第 1 条附言    2017-02-04 08:33:28 +08:00
    关于兼容 xp 的问题,果然我还是了解的不透彻啊,有人能帮忙解释下么?我这里目前是一个客户端,每次绘制界面的时候,都是我最痛苦的时候,所以我的想法是将其改为 web 模式,目前应该是想要利用 notewebkit 来实现桌面版客户端+web 的展现,但是应该如何进行, html5 貌似上次被砍死, js 也不行?
    46 条回复    2017-02-04 16:10:35 +08:00
    xcatliu
        1
    xcatliu  
       2017-02-03 16:54:19 +08:00
    《 Javascript 高级程序设计》
    xcatliu
        2
    xcatliu  
       2017-02-03 16:54:58 +08:00
    对于有 C/C++ 基础的人来说,这可以算是入门教程了。
    hoythan
        3
    hoythan  
       2017-02-03 16:55:23 +08:00
    你应该跳过 js 直接去看 jquery 才对. js 短时间上手不了, jq 就简单的多了,很多兼容也不用考虑.低版本浏览器记得用低版本的 jquery 就可以了.
    vultr
        4
    vultr  
       2017-02-03 17:08:18 +08:00
    关键看你想用 js 做什么,如果只是做简单的表单较验,找段现成的代码用或者自己写都没有任何难度。

    https://developer.mozilla.org/en-US/docs/Web/Javascript/A_re-introduction_to_Javascript
    soli
        5
    soli  
       2017-02-03 17:09:10 +08:00
    bootstrap + jquery + Vue + 各种库
    bk201
        6
    bk201  
       2017-02-03 17:14:44 +08:00 via iPhone
    直接上手最速度,然后回头再看书效果最好.
    kingze1992
        7
    kingze1992  
       2017-02-03 17:19:18 +08:00
    兼容性要求较高的话,建议直接上手 jQuery 。《锋利的 jQuery 》配合 jQuery 官方文档,再加上 Google 就够了。 HTML 、 CSS 、 Javascript 的基础知识可以看 MDN 。
    zhuangzhuang1988
        8
    zhuangzhuang1988  
       2017-02-03 17:25:38 +08:00   1
    歪个楼。。。

    http://www.lihaoyi.com/post/TalksIveGiven.html
    scala 表示可以看这个
    harry890829
        9
    harry890829  
    OP
       2017-02-03 17:42:04 +08:00
    @xcatliu #1 这本书我还真有……晚点看看去
    zhuangtongfa
        10
    zhuangtongfa  
       2017-02-03 17:43:57 +08:00
    http://www.runoob.com/js/js-tutorial.html
    http://www.runoob.com/jquery/jquery-tutorial.html
    新手学会 jq 就行了,不需要那么多高大上的东西,进阶可以学 vue
    harry890829
        11
    harry890829  
    OP
       2017-02-03 17:45:46 +08:00
    @hoythan #3 这样啊,可是不看基础直接看库真的好么?

    @vultr #4 简单的功能我知道可以直接找现成代码,我主要是需要将目前的界面全部改写……感觉这个不会 js 本身不行吧

    @soli #5 问下你回复的这些有先后顺序么?

    @bk201 #6 嗯,先看点基础,然后直接奋战项目

    @kingze1992 #7 多谢,我去找找这本书,对于基础 html 、 css 略知一二
    SuperMild
        12
    SuperMild  
       2017-02-03 17:48:43 +08:00 via iPad
    有 c c++ 基础可以考虑直接学的 typescript
    harry890829
        13
    harry890829  
    OP
       2017-02-03 17:50:57 +08:00
    @SuperMild #12 这个我还是第一次听说,优势在于?
    haozhang
        14
    haozhang  
       2017-02-03 17:51:36 +08:00 via iPhone
    看 typescript 也可以啊, js 高程看起来还是蛮耗时间的。
    harry890829
        15
    harry890829  
    OP
       2017-02-03 17:54:16 +08:00
    @haozhang #14 有个看过 js 高程的小伙伴和我说,这本书难懂……不知道是不是因为他太菜
    harry890829
        16
    harry890829  
    OP
       2017-02-03 17:57:26 +08:00
    @SuperMild #12
    @haozhang #14

    看了下 typescript 的介绍和例子,这家伙是有自己的语言规范,然后通过编译器生成 js 文件?看着有点牛逼啊
    SuperMild
        17
    SuperMild  
       2017-02-03 18:02:16 +08:00 via iPad
    @harry890829 typescript 对于有静态编译型语言经验的人来说,非常容易上手,一看就会用。然后 jquery 是要学的,它是 js 与 html 之间的桥梁。
    haozhang
        18
    haozhang  
       2017-02-03 18:07:13 +08:00
    @harry890829 js 语法上没什么难点, js 高程内容多,看起来耗时间,但是没什么很难的知识点。
    SuperMild
        19
    SuperMild  
       2017-02-03 18:08:26 +08:00 via iPad
    如果你学 js ,那么 var 与 let 的区别、变量作用域、类型的隐性转换、闭包、函数的两种定义方法、 this 究竟指向哪里、原型链等知识点都会让你有点烦……但 js 毕竟是个小巧的语言,也不会太难学。
    scys
        20
    scys  
       2017-02-03 18:09:37 +08:00
    说到 XP ,推荐你还是写回 C++
    hronro
        21
    hronro  
       2017-02-03 19:22:11 +08:00
    兼容 xp 和 js 有什么关系?
    js 的兼容行只和浏览器有关吧,你要兼容 IE ?
    peneazy
        22
    peneazy  
       2017-02-03 19:28:24 +08:00 via Android
    是要用客户端 js 吧
    snnn
        23
    snnn  
       2017-02-03 19:46:26 +08:00 via Android
    你还是直接上 qt 吧。用 qt 的 script
    rashawn
        24
    rashawn  
       2017-02-03 20:01:29 +08:00 via iPhone
    c 也可以编成 js 楼主可以主要看看环境搭建和转译啥的
    为啥我写了一年多的 js 还不会 jquery …
    Cbdy
        25
    Cbdy  
       2017-02-03 20:34:01 +08:00 via Android
    作一 c++老手可以做:打一器,暗示自己已 js 了,然後直接就可以了。遇到再查文( mdn )即可:)
    harry890829
        26
    harry890829  
    OP
       2017-02-03 21:24:30 +08:00
    @SuperMild 原来如此,大概了解了
    @haozhang 恩恩,有时间看看那书,目前应该是需要尽快实现
    @SuperMild 听说 js 好学……听说而已,我想应该不会比 c 难吧
    @scys js 在 xp 下会有问题?
    @hronro 肯定不会用 ie 啊,应该是使用 notewebkit 来做吧,因为这方面我不太了解,所以准备先写出 demo 试试看
    @rashawn 这也可以?从来没有听过啊,有关键词什么的参考下么?
    @Cbdy 已下载 webstorm ,并将 dash 中各大 js 文档下载完成
    rashawn
        27
    rashawn  
       2017-02-03 22:54:22 +08:00   1
    magicdawn
        29
    magicdawn  
       2017-02-03 23:10:41 +08:00
    sneezry
        30
    sneezry  
       2017-02-04 04:11:23 +08:00 via iPhone
    提到兼容性想来不是浏览器端的 js 吧, electron 不支持 xp , nwjs 是支持 xp 的
    harry890829
        31
    harry890829  
    OP
       2017-02-04 08:36:40 +08:00
    @rashawn #27 万分感谢,我研究研究

    @magicdawn #29 竟然有 list ,哇咔咔

    @sneezry #30 汗,用 js 的话,还是会存在对 xp 兼容性问题?这就尴尬了
    firstfire
        32
    firstfire  
       2017-02-04 09:02:11 +08:00 via iPad
    soli
        33
    /div> soli  
       2017-02-04 09:02:37 +08:00
    @harry890829 没有顺序
    tvallday
        34
    tvallday  
       2017-02-04 09:45:48 +08:00
    桌面客户端兼容 XP 难道不是用 C#吗?何况你还是写 C 的?用 js 何苦来着?用 C#写界面很痛苦吗?当年用 MFC 都不觉得。用 js 底层也还是 C++写的引擎,但是多了一层转换,在 XP 打开的那种效果。。。你的客户内存都用多大?
    billowqiu
        35
    billowqiu  
       2017-02-04 09:46:30 +08:00
    楼主是在 win 下用 C++写客户端程序么?
    harry890829
        36
    harry890829  
    OP
       2017-02-04 09:50:05 +08:00
    @firstfire #32 多谢推荐
    @soli #33 好的
    @tvallday #34 c#确实我没有考虑过,不过我确实在用 mfc 写界面,不痛苦么?基本所有用到的控件都是重绘的
    @billowqiu #35 如上
    mars0prince
        37
    mars0prince  
       2017-02-04 10:00:23 +08:00
    看了半天也没看懂楼主想做 B 端还是 C 端, B 端和系统没关系, C 端直接上 C#不是更好
    3l5e0Ddo5BX07ghT
        38
    3l5e0Ddo5BX07ghT  
       2017-02-04 10:05:04 +08:00 via iPhone
    楼主好像是做客户端?上 electron
    songofhawk
        39
    songofhawk  
       2017-02-04 11:01:37 +08:00 via Android   1
    楼主的意思是:做一个跑在 windows 上的客户端程序,但界面用 HTML 来展现么?

    如果是这样,用 c 应该也可以实现:内嵌一个浏览器控件作为 UI 窗口,其他的该怎么写还怎么写。

    如果想趁此机会学习一下基于 js 的前端技术栈,可以考虑上 Electron ,我正在学习中。这是一个跨 PC 平台的框架,可以用 HTML 展现界面,用 js 写逻辑,并且支持 nodejs 的本地 API ,看起来很理想,但涉及的技术栈确实庞大。基本上要先理解这些概念,以及他们是什么关系,如何工作的:

    js (语言)
    nodejs (运行环境)
    npm (管理工具)
    AMD/CMD (管理规范)
    html (语言)
    css (语言)
    electron (框架)
    vscode ( IDE )
    SuperMild
        40
    SuperMild  
       2017-02-04 11:10:41 +08:00 via iPhone
    如果不局限于 js ,可以考虑用 qt 或者 java 吧?
    sneezry
        41
    sneezry  
       2017-02-04 11:16:56 +08:00 via iPhone
    @harry890829 nwjs 可以兼容 xp 呀,就像我说的,但 electron 就妥妥的不行了。 nwjs 也是很不错的项目,当初写 electron 的大神也是先做 nwjs 的 contributor ,后来才发布的 electron
    Technetiumer
        42
    Technetiumer  
       2017-02-04 11:32:07 +08:00
    Python + PySide ( Qt ) 怎么样
    Technetiumer
        43
    Technetiumer  
       2017-02-04 11:56:45 +08:00
    做客户端为什么要用 JS ?就像你用 C++写前端似的。
    写 GUI 还是用 C++和 C#好,其他都很勉强。
    推荐 Qt !跨平台,能用 CSS 写界面,就不痛苦了。
    语言是和平台无关的,是否支持 XP 要看解释器或者编译器支持不支持,还有使用的库、框架。
    neone
        44
    neone  
       2017-02-04 15:38:21 +08:00
    没太明白你的意思。
    - 如果是用`C++`开发客户端,然后用`HTML`+`CSS`+`Javascript`开发用户界面的话,这个我不熟悉。但是只是操作下`DOM`的话,可以学下`jQuery`。
    - 如果是用`Javascript`开发跨平台的客户端应用的话,可以用[electron]( http://electron.atom.io/)。但是`electron`只支持`windows 7 +`,而且你需要了解`js`、`nodejs`和`nodejs`下的异步编程( callback 、 promise 、 generator 、 async /await )。

    `jQuery`的话可以看看[learn jquery]( https://learn.jquery.com/about-jquery/),这个教程还是很良心的。
    `js`的话推荐[exploringjs](exploringjs.com),从 ES5 到 ES2017 都有,而且都提供免费在线版本。此外**Javascript 高级程序设计**也是很推荐的。
    kokutou
        45
    kokutou  
       2017-02-04 15:40:33 +08:00 via Android
    xp 最高可以装到.net 4.0 , c#比较好吧。。。
    laxenade
        46
    laxenade  
       2017-02-04 16:10:35 +08:00
    像某一楼说的,如果 js 不是硬性条件的话可以考虑学 typescript ,上手应该会比 js 快一点(当然 js 基础是无论如何都要学的)。另外如果楼主英语还行的话,建议去上几门的 mooc 课(建议选一些收费的, 10-20 刀之类的),个人认为系统性的学一下前端开发比自己一个人啃书效率要更高。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5272 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 08:32 PVG 16:32 LAX 00:32 JFK 03:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86