New FAMILUG

The PyMiers

Showing posts with label JavaScript. Show all posts
Showing posts with label JavaScript. Show all posts

Saturday, 22 April 2017

Học JavaScript - phần 1 - number, boolean, string

(từ Python nhảy sang - kèm so sánh với Python)
JavaScript (JS) - /ˈdʒɑːvəˌskrɪpt/

Why?

- Mình thích thì mình học thôi 😚
- Syntax/Khái niệm 2 ngôn ngữ giống nhau đến 70%, bạn phải bỏ ra rất ít công để thụ được nhiều lợi.
- Dù thích hay không, JavaScript (từ đây ghi là JS) vẫn là ngôn ngữ duy nhất ở phía client khi duyệt web. Ngôn ngữ duy nhất chạy trên browser FireFox, Chrome, IE, Safari ... Đến cả Google, dù đã cố gắng lắm, nhưng vẫn không thể đưa Dart thay thế vị trí của JS

Để làm gì?

- Học JS để có thể viết code ngay trên FireFox/Chrome lúc nào mình muốn, không phải cài đặt, mọi lúc mọi nơi.
- Có thể điều khiển, tương tác với website qua code dễ dàng (bấm vào nút này, nút kia).
- Nếu bạn muốn làm Web Developer, biết JS là một điều bắt buộc.

Loạt bài viết này sẽ

- Lướt qua các khái niệm phổ biến của JS phía client (chung cho cả JS phía client lẫn server (Node.js)
- Học JS để tương tác với HTML DOM. Không học JS để xử lý phía server, khi ta đã có Python rồi, chẳng có lý do TỐT gì để dùng JS cho phía server. Nếu tốc độ là điều quan trọng? hãy dùng Golang. Học 1 syntax dùng cho cả 2 phía là một lý do YẾU. Cái giá phải trả cho việc dùng JS làm backend đủ để ta học 1 ngôn ngữ Backend khác tốt hơn (VD Golang/Erlang). (Đây là ý kiến cá nhân, tranh cãi đầy trên mạng: http://lmgtfy.com/?q=why+not+node+js )

Bài viết sử dụng FireFox 52.

Bắt đầu!

Bật Web console (FireFox) lên để gõ code. (Chrome cũng làm được tương tự).

Web Console trên FireFox

Monday, 2 February 2015

[Programming] Closure

Closure /ˈkləʊʒə/ sự đóng kín (Việt sub: cờ lâu giơ)

Là một khái niệm phổ biến ở các ngôn ngữ lập trình hàm (functional programming language như LISP, Scheme, ...) nhưng cũng có thể thấy ở Javascript,Ruby, Go, Object C, hay hỗ trợ 1 phần ở python2 và hỗ trợ hoàn toàn ở python3... (nhưng không có trong C, Java). Các ngôn ngữ nào cho phép trả về giá trị là một function thì có thể sẽ hỗ trợ closure.

Để tránh sử dụng wikipedia, sau đây là các định nghĩa closure từ document chính thức của một số ngôn ngữ lập trình:

Go đưa ra khái niệm ở dạng mô tả như sau trong gotour:
Một closure là một function (hàm) mà reference (tham chiếu) đến các biến ở ngoài body của nó. Function này có thể truy cập và thay đổi các biến mà nó đã reference. Có thể nói function "bound"(đã gắn) đến các biến.

EMACS LISP:
Một closure là function mà nó "mang theo" một bản ghi về "môi trường lexical" đã tồn tại khi hàm đó được định nghĩa.

Javascript:
Closure là function mà nó "tham chiếu"(refer) đến các biến độc lập. Hay nói cách khác, function ấy có khả năng "nhớ' về môi trường mà nó đã được tạo.

Dễ hiểu nhất là phân tích đoạn code sau:

Thursday, 8 August 2013

GWT - PyJS

Hai project này giúp cho việc tạo các ứng dụng Javascript chạy trên các web-browser bằng 2 ngôn ngữ phổ biến Python và Java. PyJS được port từ GWT - Google web toolkit. PyJS thì không rõ đã dùng ở đâu nhưng GWT thì đã có những sản phẩm phổ biết sau:
  • Google AdWords, AdSense, Flights, Hotel Finder, Offers, Wallet, Blogger
  • Gerrit

(PS: ngoài ra còn có RubyJS (http://rubyjs.org/) là bản port sang Ruby)

What is pyjs?

Wednesday, 15 May 2013

[Cập nhật liên tục] Các thư viện JS hay ho

 JavaScript (JS) là ngôn ngữ lập trình duy nhất ở client side (đã có mặt cả ở server side), nên hầu như tất cả các website đều cần-dùng đến nó. Với 1 Web developer yêu cầu cơ bản là bạn phải biết về JS

Các thư viện JavaScript hay ho


Familug xin list 1 số các thư viện JS hay ho mà chúng tôi sưu tập, tìm kiếm được để giúp website của bạn thêm phần sinh động, nâng cao tính tương tác với người dùng.

jQuery, Mootool và đồng bọn không được nhắc đến trong này vì quá khủng rồi