New
Loading...

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


Highchart mặc định chỉ cho phép bạn sử dụng nền màu với thuộc tính Fill hoặc backgroundColor, nhưng với thủ thuật nhỏ này có thể giúp bạn thay đổi nền màu nhàm chán bằng những hình background theo ý muốn hoặc làm một wartermark. Làm theo các bước như trong ví dụ sau:

Cách đặt background image hoặc watermark cho Highchart
HTML:
<script src="http://code.highcharts.com/highcharts.js"></script>

<div id="container" style="height: 400px"></div>
Javascript:
$(function () {
    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            backgroundColor: 'transparent',
            type: 'line'
        },
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },
        series: [{
            data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]        
        }]
    });
});
Css:
#container {
    background: url(http://obinb.com/img/chart-bg.png) repeat;
}

Trong ví dụ trên chúng ta sử dụng thuộc tính backgroundColor: 'transparent' để tắt nền chart, sau đó sử dụng css để fill background.

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!

Xem thêm:
- Hướng dẫn làm banner quảng cáo HTML5
- WebGL là gì? Học lập trình WebGL ở đâu?

- Làm thế nào để thoát một Function trong Javascript?
- Hướng dẫn làm hiệu ứng tuyết rơi bằng Action Script 3 trong Flash
- Tổng hợp những Tag (Thẻ) mới trong HTML5
- Cấu trúc chuẩn của một trang HTML5
Sau đây là cách viết một hàm chuyển đổi đơn vị thời gian từ Giây sang Giờ - Phút - Giây cực kì đơn giản bằng Javascript:

Viết hàm chuyển đổi đơn vị thời gian từ Giây sang Giờ - Phút - Giây bằng Javascript

- Viết hàm chuyển đổi, đặt tên tùy ý, mình đặt là convertHMS :
function convertHMS(value) {
    var sec_num = parseInt(value, 10); // đổi giá trị sang number (đơn vị giây)
    var hours   = Math.floor(sec_num / 3600); // giờ
    var minutes = Math.floor((sec_num - (hours * 3600)) / 60); //  phút
    var seconds = sec_num - (hours * 3600) - (minutes * 60); //  giây
    // thêm số 0 trước đơn vị nhỏ hơn 10
    if (hours   < 10) {hours   = "0"+hours;}
    if (minutes < 10) {minutes = "0"+minutes;}
    if (seconds < 10) {seconds = "0"+seconds;}
    return hours+':'+minutes+':'+seconds; // kết quả trả về HH : MM : SS
}
- Cách gọi và sử dụng:
var myTime = convertHMS(4600);
console.log(myTime); // 01:16:40

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

Xem thêm:
- TypeScript là gì?
- Cách tính tổng một mảng số (number array) trong Javascript ?
- RequireJS là gì?
- WebGL là gì? Học lập trình WebGL ở đâu?
- Phép chia lấy phần nguyên trong Javascript ?

Hiện nay HTML5 đã trở nên phổ biến và được hỗ trợ ở mọi trình duyệt vì vậy việc thay thế định dạng quảng cáo Flash bằng HTML5 là cần thiết và trở thành xu hướng bắt buộc.
Về cơ bản HTML5 chạy nhẹ, hỗ trợ trên cả thiết bị mobile hay các hệ điều hành khác nhau kể cả iOS mà không cần bất kì trình player nào như Flash.

Hướng dẫn làm banner quảng cáo HTML5

Để làm banner quảng cáo HTML5 hay chuyển đổi các banner Flash thành HTML5 rất đơn giản, các bạn chỉ cần làm theo các bước sau đây:

1 Làm mới một banner HTML5:

Để làm banner HTML5 dễ dàng nhất bạn nên cài đặt và sử dụng phần mền Adobe Flash CC, sau khi cài đặt bạn mở ứng dụng lên chọn New -> HTML Canvas

- Làm banner bình thường như làm với banner Flash, lưu ý là hiện tại Flash CC chưa hỗ trợ một số hiệu ứng Flash cho HTML5 như Style: Tint, Advanced hay một số hiệu ứng Filter nên khi xuất ra file chạy sẽ không thấy được.



- Xuất file HTML5 bằng cách nhấn Enter hoặc vào Publich để setting chi tiết ( Bạn có thể đọc thêm bài viết Hướng dẫn cách convert swf sang HTML5 dễ dàng bằng Adobe Flash CC để biết thêm)

- Đặt code redirect link khi người dùng click banner:
 Sau khi xuất ra file HTML5, bạn sẽ nhận được file .html và .js, bạn mở file HTML lên trên editor và thêm đoạn code sau vào cuối function handleComplete
stage.addEventListener('click', btnRediect);
function btnRediect(){
 location.href = "http://www.obinb.com";
}
Bạn chỉnh link redirect theo ý bạn nhé :) Sau đó lưu lại và kiểm tra kết quả trên trình duyệt.

Download file banner cơ bản trong bài viết này tại đây

Lưu ý: Khi gắn banner HTML5 bạn có thể gắn trực tiếp trong qua thẻ Canvas trong html hoặc sử dụng một iframe để load vào vị trí mình muốn.

2 Chuyển đổi một banner Flash có sẵn sang HTML5:
Rất đơn giản, bạn mở file gốc của banner Flash định dạng FLA rồi làm theo các bước trong bài viết Hướng dẫn cách convert swf sang HTML5 dễ dàng bằng Adobe Flash CC là được.
Đến bước gắn link bạn làm như ở trong bài viết này nhé.

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

Xem thêm:
- Tổng hợp những hiệu ứng ánh sáng flash để làm banner hoặc intro
- Một số hiệu ứng ánh sáng chói trong Flash để làm banner, intro...
- Hướng dẫn làm hiệu ứng tuyết rơi bằng Action Script 3 trong Flash
- Tạo bộ đếm giờ (Countdown Timer) bằng Action Script 2 trong Flash
- Tổng hợp những Tag (Thẻ) mới trong HTML5
- Cấu trúc chuẩn của một trang HTML5

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