New
Loading...

Tự hỏi đáp

Trả lời

ng-cloak (ngCloak) là một Angularjs directive được sử dụng để ngăn chặn các template html gốc (code angularjs) hiển thị một thời gian ngắn trên trình duyệt ở dạng thô khi ứng dụng của bạn đang tải. Sử dụng directive này để ẩn tạm thời code Angularjs cho đến khi ứng dụng được tải xong.

ng-cloak là gì? Cách sử dụng ng-cloak?

Cách dùng:

Bạn có thể dùng như một class css hoặc đặt nó như một thuộc tính html (html attribute)
Ví dụ:
<div id="template1" ng-cloak>{{ 'hello' }}</div>
<div id="template2" class="ng-cloak">{{ 'world' }}</div>
Để chắc chắn bạn có thể add thêm đoạn css sau vào file css của bạn:
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
  display: none !important;
}

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

Để tìm max (số lớn nhất) ta dùng hàm Math.max:
Cho một mảng như sau:  numArray = [1,2,4,3,6,2,8]

Cách một:
function getMaxOfArray(numArray) {
  return Math.max.apply(null, numArray);
}
getMaxOfArray(numArray);
// kết quả là 8
Cách hai:

Math.max(numArray); // kết quả là 8
Để tìm min (số nhỏ nhất) ta dùng hàm Math.min, cách dùng tương tự với Math.max

Rất đơn giản phải không nào các bạn? Chúc các bạn thành công!

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Giải đáp nhanh

Trả lời

Cookie là một dạng lưu trữ data trên trình duyệt dù cho người dùng đã tắt trình duyệt đi. Cookie thường chỉ cho phép lưu trữ một lượng hạn chế data nên việc lưu trữ này đa phần sử dụng cho lưu trữ setting người dùng, thông tin đăng nhập, form...
Sau đây là cách tạo và sử dụng Cookie:

1 - Cách tạo: Viết một hàm tạo cookie có tên createCookie
var createCookie = function(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else {
        expires = "";
    }
    document.cookie = name + "=" + value + expires + "; path=/";
}

- Trong hàm createCookie  sẽ truyền vào các biến name: tên cookie, value: giá trị, days: Số ngày lưu ở trình duyệt.

- Sau đó tạo một hàm getCookie truyền vào biến c_name ( là tên của cookie bạn đã đặt khi sử dụng hàm tạo cookie )
function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) {
                c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}
 2- Cách dùng:
 - Tạo một Cookie mới: Ví dụ tạo một Cookie có tên myCookie
var myValue = 'Test';
var myTime = 'Thu, 01 Jan 2016 00:00:00 UTC';
createCookie('myCookie', myValue, myTime);
- Sau đó gọi lại để sử dụng giá trị vừa lưu:
var myValueSaved = getCookie('myCookie');
Như vậy giá trị biến myValueSaved nhận được sẽ là "Test";

3- Xóa cookie:
- Để xóa cookie vừa tạo bạn chỉ cần gọi lại hàm createCookie truyền tên cookie muốn xóa và cho giá trị rổng và reset lại ngày lưu là đc:
var nullValue = '';
var resetTime = 'Thu, 01 Jan 1970 00:00:00 UTC';
createCookie('mycookie', nullValue , resetTime );
Hoặc khi người dùng muốn xóa thì chỉ cần vào phần xóa cache và cookie để xóa.

Rất đơn giản phải không nào? Chúc các bạn thành công!

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Giải đáp nhanh

Trả lời

Sau đây là hướng dẫn nhanh cách viết hàm chuyển đổi từ timestamp thành ngày tháng năm trong Javascript:

Đầu tiên bạn tạo một function có tên tùy ý, trong ví dụ này mình đặt là formatDay:
function formatDay(timestamp) {
    var date = new Date(timestamp*1000);
    var month = date.getMonth()+1;
    var year = date.getFullYear();
    var day = date.getDate();
    return year+'/'+month+'/'+day;
}
Sau đó bạn gọi lại để sử dụng như sau:
Ví dụ: timestamp bạn muốn convert là 1476205200
var myday = formatDay(1476205200);
console.log(myday );
// kết quả là 2016/10/12

Lưu ý: Nếu timestamp là đơn vị milisecond, bạn phải bỏ *1000 trong hàm chuyển đổi đi:
function formatDay(timestamp) {
  var date = new Date(timestamp);
  var month = date.getMonth()+1;
  var year = date.getFullYear();
  var day = date.getDate();
  return year+'/'+month+'/'+day;
}
- Format trong hàm trả về là 2016/10/12, nhưng bạn cũng có thể tùy ý đảo theo format mình muốn trong phần return của hàm

Rất đơn giản phải không nào? Chúc các bạn thành công!

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Giải đáp nhanh

Trả lời

Để tự động ngắt dòng bằng dấu chấm khi chữ quá dài mà không mất text trong thiết kế web, bạn chỉ cần dùng các thuộc tính css đơn giản sau đây:
text-overflow: ellipsis;
white-space: nowrap;

Ví dụ: Bạn đặt một thẻ div hoặc span với class là elements, trong css bạn viết cho class này như sau:
.elements {
 width: 150px;
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
}
Lưu ý: Độ dài của text bạn quy định bằng thẻ width trong css nhé. Rất đơn giản phải không nào? Chúc các bạn thành công!

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Giải đáp nhanh

Trả lời

Trong làm web bạn dùng position là absolute cho đối tượng div hoặc bất kì đối tượng nào khác, nếu muốn cân giũa cho đối tượng đó bạn phải sử dụng các thuộc tính margin, left và right, ví dụ:

Bạn đặt một thẻ div với class là elements, trong css bạn viết css cho class này như sau:
.elements {
 position: absolute;
 margin-left: auto;
 margin-right: auto;
 left: 0;
 right: 0;
}
Để đối tượng .elements luôn nằm trên các đối tượng khác, bạn chỉ việc thêm vào thuộc tính z-index thật lớn, ví dụ như 9999. Rất đơn giản phải không nào? Chúc các bạn thành công!

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Giải đáp nhanh

Trả lời

Để kiểm tra khi nào Ajax load xong và thực thi một lệnh gì đó các bạn chỉ cần sử dụng hàm ajaxComplete được hỗ trợ sẵn trong Jquery, cách dùng như sau:

Gọi hàm ajaxComplete và đặt code thực thi bạn muốn vào trong nó:
$( document ).ajaxComplete(function() {
  // Lệnh thực thi khi ajax load xong
});
Rất đơn giản phải không nào? Chúc các bạn thành công!

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

Trong lập trình thì Lập trình hàm là một khái niệm khá phổ biến nhưng không phải ai cũng nắm rõ sau đây là khái niệm về lập trình hàm:

Trong ngành khoa học máy tính, lập trình hàm là một mô hình lập trình xem việc tính toán là sự đánh giá các hàm toán học và tránh sử dụng trạng thái và các dữ liệu biến đổi. Lập trình hàm nhấn mạnh việc ứng dụng hàm số, trái với phong cách lập trình mệnh lệnh, nhấn mạnh vào sự thay đổi trạng thái. Lập trình hàm xuất phát từ phép tính lambda, một hệ thống hình thức được phát triển vào những năm 1930 để nghiên cứu định nghĩa hàm số, ứng dụng của hàm số, và đệ quy. Nhiều ngôn ngữ lập trình hàm có thể được xem là những cách phát triển giải tích lambda.

Lập trình hàm là gì?

Trong thực tế, sự khác biệt giữa hàm số toán học và cách dùng từ "hàm" trong lập trình mệnh lệnh đó là các hàm mệnh lệnh có thể tạo ra hiệu ứng lề, làm thay đổi giá trị của một phép tính trước đó. Vì vậy các hàm kiểu này thiếu tính trong suốt tham chiếu, có nghĩa là cùng một biểu thức ngôn ngữ lại có thể tạo ra nhiều giá trị khác nhau vào các thời điểm khác nhau tùy thuộc vào trạng thái của chương trình đang thực thi. Ngược lại, trong lập trình hàm, giá trị xuất ra của một hàm chỉ phụ thuộc vào các tham số đầu vào của hàm, vì thế gọi hàm f hai lần với cùng giá trị tham số x sẽ cho ra cùng kết quả f(x). Việc loại bỏ hiệu ứng lề có thể làm cho chương trình dễ hiểu hơn rất nhiều và người ta có dự đoán được hành vi của một chương trình, đó chính là một trong các động lực chính cho sự phát triển của lập trình hàm.

Các ngôn ngữ lập trình hàm, đặc biệt là các loại thuần lập trình hàm, có ảnh hưởng lớn trong giới học thuật hơn là dùng để phát triển các phần mềm thương mại. Tuy vậy, các ngôn ngữ lập trình hàm nổi bật như Scheme,Erlang,Objective Caml,và Haskell đã được nhiều tổ chức khác nhau sử dụng trong các ứng dụng công nghiệp và thương mại. Lập trình hàm cũng được sử dụng trong công nghiệp thông qua các ngôn ngữ lập trình chuyên biệt như R (thống kê),Mathematica (toán học hình thức), J và K (phân tích tài chính)[cần dẫn nguồn], F# trong Microsoft.NET và XSLT (XML).Các ngôn ngữ chuyên biệt dạng khai báo được sử dụng rộng rãi hiện nay như SQL và Lex/Yacc, cũng sử dụng một số thành phần của lập trình hàm, đặc biệt để tránh các giá trị biến đổi. Các bảng tính (spreadsheet) cũng có thể được xem là các ngôn ngữ lập trình hàm.

Lập trình theo phong cách lập trình hàm cũng có thể thực hiện ở các ngôn ngữ không được thiết kế riêng cho lập trình hàm. Ví dụ, ngôn ngữ lập trình mệnh lệnh Perl đã có một cuốn sách viết về cách áp dụng các khái niệm lập trình hàm vào đó. JavaScript, một trong các ngôn ngữ được dùng nhiều hiện nay, có khả năng lập trình hàm.

Tham khảo thêm các khái niệm Lập trình hàm tại địa chỉ: https://vi.wikipedia.org/wiki/L%E1%BA%ADp_tr%C3%ACnh_h%C3%A0m

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

Thỉnh thoảng khi code bạn phải đặt một hàm hoặc lệnh nào đó trong một vòng lặp hoặc một đoạn code thực thi nhiều lần nhưng bạn chỉ muốn hàm đó chạy một lần duy nhất không lập đi lập lại theo vòng lặp. Sau đây là giải pháp:
Để chạy lệnh hoặc function một lần duy nhất trong Javascript các bạn làm như sau:

Viết một hàm tên runFunctionOnceTime (Hoặc các bạn đặt tên tùy ý):
function runFunctionOnceTime(fn, context) {
    var result;
    return function() {
        if(fn) {
            result = fn.apply(context || this, arguments);
            fn = null;
        }
        return result;
    };
}

Sau đó bạn viết một hàm mới với lệnh mà bạn muốn thực thi một lần duy nhất đặt trong vòng lặp:
var reloadColorPercent = runFunctionOnceTime(function() {
    //Lệnh bạn muốn chạy một lần duy nhất
});
reloadColorPercent ();

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

Để kiểm tra biến có phải là một mảng hay không trong Javascript ta làm như sau:

Bạn dùng hàm constructor để kiểm tra biến đối với mảng thông thường:
Ví dụ:
if(variable.constructor === Array)
{
  // chạy lệnh nếu biến là một mảng
}else{
  // chạy lệnh nếu biến không phải là một mảng
}

Nếu là mảng object thì ta làm như sau:
if(variable.prop && variable.prop.constructor === Array)
{
  // chạy lệnh nếu biến là một mảng
}else{
  // chạy lệnh nếu biến không phải là một mảng
}

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

Kí tự xuống dòng ( \n ) dùng để chèn vào đoạn string để xuống dòng khi soạn thảo hoặc import nội dung text, đôi khi bạn phải remove nó đi, sau đây là cách làm đơn giản bằng Javascript:

Bạn dùng hàm replace để remove chúng với 1 chuỗi rỗng (""):
Ví dụ:
var text = "text1\ntext2";
text.replace(/\r?\n|\r/g, '');
// return => "text1text2"


Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

TypeScript là một ngôn ngữ lập trình mã nguồn mở miễn phí được phát triển và bảo trì bởi Microsoft. Nó là tập cha của JavaScript, với các bổ sung các tuỳ chọn kiểu tĩnh và lớp trên cơ sở lập trình hướng đối tượng cho ngôn ngữ này. Anders Hejlsberg, cha đẻ ngôn ngữ C# và là người tạo ra ngôn ngữ Delphi và Turbo Pascal đã tham gia phát triển TypeScript. TypeScript có thể sử dụng để phát triển ứng dụng chạy phía client, hay phía server (Node.js)

TypeScript là gì? Học typescript ở đâu?

TypeScript được thiết kế để phát triển ứng dụng lớn và được biến đổi - biên dịch sang JavaScript. Vì TypeScript là tập cha của JavaScript nên bất kì chương trình JavaScript nào đã có cũng đều là chương trình TypeScript hợp lệ.

TypeScript hỗ trợ định nghĩa các file chứa thông tin kiểu của các thư viện JavaScript, giống như các file header của C/C++ mô tả cấu trúc của các file object. Điều này cho phép các chương trình khác sử dụng các giá trị được định nghĩa trong các file giống như các thực thể TypeScript được định kiểu tĩnh. Đó là các file header hãng thứ ba (third-party) cho các thư viện thông dụng như jQuery, MongoDB, D3.js. Các file header cho các module cơ bản cho Node.js cũng có sẵn cho phép phát triển chương trình Node.js bằng TypeScript.

Bản thân trình biên dịch TypeScript cũng được viết bằng TypeScript, biến đổi – biên dịch sang JavaScript và được cấp phép theo Giấy phép Apache 2.

TypeScript lần đầu được gắn sẵn như một ngôn ngữ lập trình trong Microsoft Visual Studio 2013 Update 2 và các phiên bản sau đó, cùng C# và các ngôn ngữ khác của Microsoft. Một thành phần mở rộng chính thức cũng cho phép Visual Studio 2012 hỗ trợ tốt cho TypeScript.

Bạn có thể học hay tìm hiểu thêm về ngôn ngữ này tại địa chỉ: www.typescriptlang.org


Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

Cách tính tổng một mảng số (number array) trong Javascript rất đơn giản, bạn tạo biến tên là sum, sử dụng hàm reduce để đếm lùi từng số rồi sử dụng hàm add để tính tổng như sau:

var sum = [1, 2, 3].reduce(add, 0);

function add(a, b) {
    return a + b;
}

console.log(sum); // xuất kết quả trên console là 6

Trong chuẩn ECMAScript 2015 (hay còn gọi là ECMAScript 6), bạn có thể viết tính tổng ngắn gọn hơn như sau:

var sum = [1, 2, 3].reduce((a, b) => a + b, 0);
console.log(sum); // kết quả sum = 6

Chúc các bạn thành công!

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

RequireJS là một JavaScript Module Loader. Nó được tối ưu hóa để sử dụng trên trình duyệt, nhưng nó có thể được sử dụng trong các môi trường JavaScript khác, như Rhino và Node. Sử dụng một kịch bản bộ nạp mô-đun như RequireJS sẽ cải thiện tốc độ và chất lượng code của bạn.

RequireJS là gì?
Các trình duyệt được hỗ trợ:

IE 6+ .......... ✔
Firefox 2+ ..... ✔
Safari 3.2+ .... ✔
Chrome 3+ ...... ✔
Opera 10+ ...... ✔

Bạn có thể tìm hiểu cách dùng và download tại địa chỉ: Requirejs.org 

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

WebGL là một khái niệm đã có từ vài năm trước, nó được viết tắt từ Web-based Graphics Library, là một thư viện phần mềm mở rộng khả năng của ngôn ngữ JavaScript để cho phép nó tạo ra tương tác đồ họa 3D trong bất kỳ trình duyệt nào tương thích (Firefox, Chrome, Safari..). Mã của WebGL thực hiện xử lý trên card xử lý đồ họa (GPU), lưu ý là card đồ họa phải có hổ trợ shader. WebGL là một context của phần tử canvas trong HTML cung cấp các hàm API 3D graphics. Được phát hành phiên bản đầu tiên 1.0 vào ngày 03 Tháng 3 năm 2011. WebGL được quản lý bởi tổ chức phi lợi nhuận Khronos Group.

WebGL là gì? Học lập trình WebGL ở đâu?
Game 3D chạy trên nền web
Một số website học WebGL miễn phí:

- Learningwebgl.com

- Lozilla.org/GL

- Webglacademy.com

- Tutorialspoint.com/webgl

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

Cách chia rất đơn giản đó là chúng ta sử dụng hàm floor để chia, cách chia như sau:

<script>
 
  var num = Math.floor(45/2); // lấy phần nguyên của 45 chia cho 2, kết quả sẽ là 20
  console.log(num); // xuất kết quả ra màn hình console

</script>

Một số phép tính khác trong Javascript:

Cho: Biến num một giá trị bất kì

- Lấy giá trị tuyệt đối: Math.abs(num) 

- Làm tròn lên: Math.ceil(num) // Hàm này ngược với hàm làm tròn xuống mà chúng ta dùng để chia lấy phần nguyên (floor)

- Trả về logarit: Math.log(num) 

- Trả về căn bậc hai: Math.sqrt(num) 

Lưu ý trong Javascript, tất cả các phép tính này ta đều phải dùng hàm toán học Math 

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

Google Cardboard là chiếc kính thực tế ảo của Google, nó được làm chủ yếu từ bìa cứng với giá bán chỉ 15$ nhưng mang đến trải nghiệm vô cùng tuyệt vời, thậm chí là tốt hơn những sản phẩm có chức năng cùng loại nhưng giá cao hơn đang lưu hành trên thị trường.

kính thực tế ảo VR Google CardBoard ở đâu có bán?

Vậy câu hỏi đặt ra là nên mua kính thực tế ảo CardBoard ở đâu? Câu trả lời là nên mua ngay tại trang chủ bán sản phẩm này của Google tại địa chỉ:

https://vr.google.com/cardboard/get-cardboard/

Thanh toán qua thẻ Visa /Master hoặc tài khoản Paypal
Cấu tạo chính của Cardboard, nó bao gồm một hốc đựng điện thoại, một cái nút và một miếng bìa cứng ở giữa chứa 2 thấu kính. Kính được tháo lắp cực kì đơn giản chỉ bằng cách gắn các miếng dán velcron lại với nhau là xong (có thể gỡ ra để cất cho gọn nếu muốn).
Cái nút của Cardboard, nó thực chất là một miếng bìa cứng được phủ giấy bạc. Khi tay chạm vào và đè miếng bìa cứng này xuống, điện từ người bạn sẽ theo mảnh giấy bạc truyền vào màn hình và ghi nhận như là một thao tác touch. Quá đơn giản nhưng vô cùng thông minh và hiệu quả ,nút này hoạt động với chức năng tương tự phím Select trên Samsung Gear VR, tức là bạn sẽ chạm vào nó để chọn một cái gì đó trên màn hình.

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Tự hỏi đáp

Trả lời

Chỉ cần tạo một điều kiện if ( if conditional statement) nằm trong function như sau:

function example(){
 // Lệnh của function
 if ( "điều kiện" ) {
     return; // Thoát function nếu thõa điều kiện
 }
}

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới