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 · 6120 次点击
    这是一个创建于 2879 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了 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
    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#不是更好
    h4avone
        38
    h4avone  
       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   ·   实用小工具   ·   2266 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 16:01 · PVG 00:01 · LAX 08:01 · JFK 11:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.