Javascript

Javascript: Nhân vật bí ẩn và đáng sợ prototype!

Prototype là một khái niệm mà bạn bè hỏi tôi khá nhiều lần và câu trả lời của tôi cũng rất mơ hồ và họ cũng gật gù nhưng tôi hiểu có lẽ họ cũng chưa hài lòng lắm … Mọi thứ trong javascript đều là Object: string(String), number(Number), date(Date), function(Function), … và cái prototype gắn liền với khái niệm…

Continue Reading

CSS

CSS: Box Model là gì?

Box Model Tất cả element trong HTML đều như là một box(cái hộp). Do đó, chúng ta có thể hiểu rằng box model như là một cái hộp bao bọc từng element có các thuộc tính sau: nội dung(content), khoảng bao bọc(padding), khung(border), và lề(margin). Chúng ta có thể hình dung một box model như sau: Do mỗi element đều…

Continue Reading

Javascript

Javascript: Event delegation và event bubbling là gì?

Event Delegation Event Delegation là cách mà javascript engine xử lí khi chúng ta thêm một sự kiện cho một DOM cha thì tất cả các DOM con của nó đều được nhận event đó. Ví dụ ta có ba div sau: <div class=”one”> <div class=”two”> <div class=”three”> </div> </div> </div> Khi chúng ta tạo một event cho class one…

Continue Reading

Javascript

Javascript: Những quái nhân call, apply và bind?

Ở những bài trước, chúng ta đã tìm hiểu về Execution Context. Chúng ta có: -Execution Context của một function, và -Execution Context của Global Environment. Một Execution Context của một function được mô tả như hình vẽ: Nó bao gồm: -Variable Environment -This -Outer Environment Chúng ta chú ý đặc biệt đến this nhé. Vì call, apply và bind…

Continue Reading

Javascript

Javascript: Closure là cái chi chi?

Closure(bao đóng) là một khái niệm khi mà chúng ta khai báo một function trong một function khác. Khi một function được khai báo nó tạo nên một Execution Context. Với closure chúng ta có một Execution Context cha và Execution Context con. Một pattern có thể hình dung như sau: function sum(a) { //parent scope, another name is lexical…

Continue Reading

Javascript

Javascript: Lập trình chức năng(Functional Programming) là gì?

Lập trình chức năng(Functional Programming – FP) là một tiến trình tạo nên một phần mềm bằng cách kết hợp các pure function, và tránh chia sẻ states, mutable data, side-effect. Lập trình chức năng là declarative, chứ không phải imperative. Những biến(state), dữ liệu sẽ kết nối thông qua những pure function. Khác với lập trình hướng đối tượng,…

Continue Reading

Javascript

Javascript: IIFE là gì?

IIFE là viết tắt của Immediately Invoked Function Expression, có nghĩa là khởi tạo một function và thực thi nó ngay lập tức.Cú pháp của IIFE là: (function(){ //code here })(); Ta có thể truyền tham số cho IIFE như sau: (function(window, name){ //code here })(window, name); Vậy tại sao lại dùng IIFE? Bởi vì IIFE như là một các…

Continue Reading

Javascript

Javascript: Promise vs. Observable

Promise và Observable đều giúp chúng ta quản lí những tác vụ async trong Javascript. Quản lí tốt những async trên website của bạn là một trong những nhiệm vụ tất yếu và không thể tránh khỏi. Vì vậy, chúng ta nên tìm hiểu kỹ về nó. Chúng ta có một số async trên website như sau: event(click, mouse, scroll,…

Continue Reading