Thứ Ba, 1 tháng 3, 2016

Tác hại của shisha - trang tin kênh14

Tác hại của mua Shisha mà nhiều người không ngờ đến

Có thực là shisha không độc hại như khói thuốc lá, và hút shisha là an toàn?

Thuốc shisha đã du nhập vào Việt Nam từ khá lâu nhưng có thể nói, chưa khi nào bán thuốc shisha lại trở nên phổ biến như hiện nay. Nhiều người vẫn quan niệm rằng, shisha không hề gây nghiện, lại ít độc hại hơn thuốc lá nên có thể hút thoải mái. 

Nhưng có thực là shisha không có tác hại gì đến sức khỏe chúng ta? Hãy cùng đến với bài viết sau đây để hiểu thêm về loại chất kích thích đang thịnh hành này.

Shisha là gì?

Shisha là tên gọi của một loại thuốc hút có xuất xứ từ Ả Rập từ hơn 400 năm trước. Shisha còn có tên gọi là thuốc lào Ả Rập, thực chất là một loại cỏ được tẩm thêm mật ong cùng các hương liệu trái cây như nho, cam, táo, dâu...

150921shisha05-14f56

150921shisha03-7276e
Thuốc Shisha truyền thống ở Ả Rập được hút thông qua điếu Hookah. Trong đó, những loại thảo mộc tạo mùi thơm được đốt cách nhiệt bằng than, qua một ống nước và hút bằng ống.

150921shisha07-a9dfd
Trong quá khứ, shisha đã từng rất thịnh hành, nhưng đến khoảng thế kỷ XVI - XVII, thuốc lá từ châu Âu du nhập vào khiến lượng người dùng shisha giảm hẳn đi. 

Để giữ chân khách hàng, người ta đã chế ra những chiếc bình rất hấp dẫn, cầu kỳ, cho lọc qua nước và nghĩ rằng điều này khiến cho vị của shisha đậm đà hơn. Đây được cho là một phương thức để Shisha cạnh tranh với thuốc lá lúc bấy giờ.

150921shisha06-8f483

Sau này, văn hóa hút shisha đã lan truyền sang các nước Trung Đông và dần dần trở nên phổ biến trên toàn thế giới. Ngày nay, không khó để thấy giới trẻ tụ tập trong các quán bar, cafe... chuyền tay nhau ống hút Shisha, miệng "nhả" ra làn khói trắng.

Có thực là Shisha không độc hại?

Dưới cái nhìn của nhiều người, shisha không gây nghiện và khá an toàn do được lọc qua nước nên lượng độc tố cơ thể hấp thu nhẹ hơn thuốc lá. Thêm vào đó, Shisha lại có nhiều hương vị trái cây nên khiến nhiều người hiện nay đặc biệt ưa chuộng.

Tuy nhiên, sự thực là shisha cũng là một loại thuốc giống hệt như thuốc lá và thuốc lào, vì thế bản thân nó vẫn mang nicotine - một chất gây hưng phấn nên vẫn có thể gây nghiện.

150921shisha01-3e3f4
Shisha thực sự không khác gì thuốc lào hay thuốc lá

Theo tiến sĩ Khalid Anis - Giám đốc tổ chức tư vấn thuốc lá tại vùng Bắc Anh quốc (NTAG) cho biết: "Người ta thường nhầm tưởng rằng shisha không gây độc hại như thuốc lá, vì thuốc shisha có hương trái cây, còn khói thì đi qua nước trước. 

Tuy nhiên, nicotine và các chất gây ung thư giống trong thuốc lá vẫn còn đó. Chính vì thế, một người hút shisha thường xuyên sẽ vẫn chịu những rủi ro mắc bệnh giống với người hút thuốc lá như ho lao, trụy tim, và cả ung thư. Ngoài ra, shisha hoàn toàn có thể gây nghiện".

150921shisha03-3e3f4

Đã có rất nhiều báo cáo trên thế giới về khói Shisha cho thấy tác hại không thua kém gì thuốc lá, thậm chí còn độc hơn. Theo báo cáo của Tổ chức Y tế thế giới WHO và Hiệp hội Ung thư Mỹ,lượng khói hít vào cơ thể khi hút Shisha trong vòng 1 giờ tương đương với khi hút từ 100 đến 200 điếu thuốc lá. 

Đồng thời, tỉ lệ nicotine ngấm vào cơ thể khi hút shisha cao hơn thuốc lá tới 70%. Một bình shisha như hiện tại thường được hút trong thời gian khoảng 40 phút - như vậy số lần hít vào sẽ là từ 50 - 200 lần. Lượng khói này tương đương với 0,15 - 0,5 lít khói. Đó quả là số lượng khủng khiếp.

150921shisha05-38164
Lượng khói hít vào khi hút shisha nhiều hơn thuốc lá cả trăm lần

Theo một số nghiên cứu khác, việc sử dụng than để đốt thuốc hút shisha cũng khiến khả năng mắc ung thư, tắc nghẽn phổi mạn tính... tăng cao tới 5 lần.

Cùng với đó việc nhiều người dùng chung một ống hút có thể lây nhiễm các bệnh như lao, viêm gan, các bệnh răng miệng... 

alotin.vn_1404199369_b81e944450306cd90882ab8262bab7af635314482367685331-5f587
Hương liệu trái cây được dùng để hút shisha cũng thường là loại hương liệu có chất lượng kém và dễ gây nên những hậu quả nghiêm trọng đến sức khỏe như ảnh hưởng thần kinh, nhức đầu. 

150921shisha06-f8238
Phổi của những người hút shisha hoàn toàn có thể bị nám đen, giống như khi hút thuốc lá

Không chỉ vậy, để thu hút thêm khách hàng, một số nơi đã sử dụng "chiêu" chế shisha. Theo đó, họ bỏ thêm vào bình shisha nguyên chất một vài nguyên liệu như rượu, ma túy để tăng độ "phiêu".

Rượu chế vào shisha có thể gây dị ứng cho người hút, đôi khi gây rát cổ, tê họng, bỏng… cho người sử dụng. Thậm chí, nếu dùng phải rượu giả, người hút còn có thể bị shock, ngạt thở, trụy tim, suy hô hấp, nếu không được cấp cứu kịp thời còn có thể bị tử vong.

150921shisha08-f8d29
Nguy hiểm hơn, việc sử dụng bình shisha có chứa ma túy sẽ dẫn đến tình trạng nghiện từ nhẹ tới nặng, gây ảo giác liên tục, ảnh hưởng nghiêm trọng tới hệ thần kinh và não bộ, tương tự như tác hại của hiện tượng "phê" ma túy vậy.

Giới chuyên gia luôn khuyến cáo, mọi người không nên sử dụng shisha bởi chúng độc hại và gây ảnh hưởng lớn đến sức khỏe của mỗi người. Hơn ai hết, bạn hãy yêu lấy chính bản thân mình, tự răn đe mình để có thể tránh xa loại chất kích thích đáng sợ này.

Nguồn: Telegraph, Quitshisha

Thứ Tư, 3 tháng 2, 2016

Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya

Cặp đôi vừa bị bắt gặp đưa đón nhau đi dự sự kiện và có những hành động vô cùng thân mật: nắm tay, cõng nhau và thậm chí là hôn nhau sau đắm.


Giữa tháng 1/2016, nhiều fan của cặp đôi Tiến Đạt và  Hari Won đều bất ngờ và cảm thấy sốc khi họ chính thức chia tay sau 9 năm yêu nhau bởi những mâu thuẫn tình cảm mà cả hai gặp phải trong thời gian họ yêu nhau. Sau khi chia tay, Đinh Tiến Đạt và Hari Won xác định cả hai vẫn làm bạn và luôn dành cho nhau sự tôn trọng. Ngay khi chia tay, Hari Won cũng đã trở về Hàn Quốc 2 tuần để thăm gia đình và nghỉ ngơi sau những ngày dài trải qua sóng gió với khá nhiều lời chỉ trích đã khiến cô mệt mỏi và tắt điện thoại.
Cũng trong sự việc trên, nhiều người còn giả thiết rằng Trấn Thành chính là người thứ ba dẫn đến việc cặp đôi họ chia tay vì căn cứ vào độ thân thiết của nam MC dành cho Hari Won qua những nụ hôn, cái ôm,... trong các chương trình thực tế. Trấn Thành cũng đã từ chối trả lời về vấn đề này vì không muốn lên tiếng khi không liên quan gì đến vụ việc này.
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 1.
 Trấn Thành và Hari Won thân thiết trong các chương trình truyền hình thực tế cũng như trên phim trường
Trước thông tin trên, càng bất ngờ hơn khi vào chiều tối qua (2/2), chúng tôi đã bắt gặp Trấn Thành lái xe đến trường quay, nơi mà Hari Won đang có lịch quay quảng cáo để đón cô nàng về nhà và cả hai cùng nhau sánh đôi đi đến một trung tâm hội nghị ở Q.1 để dự một buổi tiệc của danh hài Trường Giang.
Sau khi kết thúc buổi tiệc, Trấn Thành và Hari Won tiếp tục cùng nhau đi xem phim ở một trung tâm thương mại ở Q.7. Xem phim xong thì họ trở ra và Trấn Thành bất ngờ cõng Hari Won lên xe trông rất tình cảm và di chuyển tiếp đến một quán ăn trên đường Lê Quang Sung, Q.6. Theo quan sát, tại quán ăn, Trấn Thành và Hari Won không ngại có những cử chỉ thân mật với nhau. Thậm chí Hari Won còn vô tư "khóa môi" Trấn Thành say đắm và cả hai đút thức ăn cho nhau ăn cực kì tình cảm như chỉ có trong phim Hàn. Cuối cùng, Trấn Thành đưa Hari Won về nhà ở Q.Phú Nhuận vào lúc 3h sáng sau khi họ đã có những giờ phút vui vẻ bên nhau.
 Clip ghi nhận khoảnh khắc Trấn Thành hôn Hari Won
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 3.
 Sau khi Trấn Thành đến đón Hari Won từ chỗ quay quảng cáo về nhà, cả hai cùng nhau đi đến một trung tâm hội nghị ở Q.1 để tham gia buổi tiệc của danh hài Trường Giang
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 4.
 Cả hai ngồi cạnh nhau trong buổi tiệc
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 5.
 Thoải mái trò chuyện với nhau
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 6.
 Rời buổi tiệc, Trấn Thành lái xe chở Hari Won...
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 7.
 ... đến một trung tâm mua sắm ở Q.7
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 8.
 Trấn Thành bất ngờ chu môi "hôn yêu" Hari Won
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 9.
 Cả hai mua vé vào xem phim suất trễ
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 10.
 Khi trở ra, Trấn Thành không ngại cõng Hari Won ra xe trông rất tình cảm
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 11.
 Họ tiếp tục di chuyển đến một quán ăn khuya trên đường Lê Quang Sung, Q.6
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 12.
 Trấn Thành ga lăng lấy ghế cho Hari Won ngồi trước
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 13.
 Vui vẻ trò chuyện trong lúc chờ đồ ăn
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 14.
 Hari Won ghé sát vào tai Trấn Thành thì thầm...
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 15.
 Trấn Thành chăm sóc Hari Won bằng những hành động khiến người khác phải ghen tị
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 16.
 Nam MC đút đồ ăn thức uống cho Hari Won
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 17.
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 18.
 ... và Hari Won bất ngờ "khóa môi" Trấn Thành say đắm ngay tại quán ăn
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 19.
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 20.
 Ăn khuya xong, cả hai ra về...
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 21.
Hậu chia tay Tiến Đạt, Hari Won bị bắt gặp say đắm hôn Trấn Thành giữa đêm khuya - Ảnh 22.
 Trấn Thành đưa Hari Won về nhà ở Q. Phú Nhuận vào lúc 3h sáng
>> Xem thêm: Quán cafe bán shisha

Thứ Năm, 7 tháng 1, 2016

Tất cả smartphone BlackBerry năm nay sẽ chỉ chạy Android

Xin lỗi các fan của BlackBerry 10. Năm 2016 của BlackBerry sẽ là năm của Android, không có sản phẩm nào mới cho BlackBerry 10.
BlackBerry sẽ phát hành một hoặc hai điện thoại trong năm nay, tất cả đều chạy Android
Trả lời phỏng vấn Cnet tại triển lãm CES đang diễn ở Mỹ, CEO John Chen của BlackBerry đã xác nhận hãng này chỉ ra mắt khoảng 1 đến 2 smartphone trong năm 2016. Cả hai sản phẩm đó sẽ chạy phần mềm Android của Google. Tuy nhiên, CEO này từ chối tiết lộ về các chi tiết cũng như thời điểm ra mắt của các mẫu BlackBerry mới.
Đây là một tin khá buồn với các fan ruột của BlackBerry. Điều này có nghĩa là BlackBerry vẫn sẽ sản xuất smartphone nhưng không có sản phẩm nào chạy BlackBerry 10. Như vậy, người dùng Android sẽ có thêm các lựa chọn bên cạnh vô số máy đến từ các hãng Samsung, LG và HTC.
CEO John Chen của BlackBerry vừa cho biết, doanh số của BlackBerry Priv (chiếc smartphone chạy Android đầu tiên của công ty) đủ lớn để công ty quyết tâm dấn thân tiếp với hệ điều hành của Google. Khi đề cập đến doanh số của Priv, Chen cho biết: "Cho tới nay có thể xem là tốt. Tôi lạc quan nhưng thận trọng". Sắp tới, BlackBerry dự định mở rộng bán Priv tới 31 quốc gia và giá của máy sẽ giảm dần theo thời gian. Ở thị trường Mỹ, AT&T cũng đã hết hạn độc quyền BlackBerry Priv nên trong thời gian tới nhiều nhà mạng khác của Mỹ như T-Mobile, Verizon và Sprint cũng sẽ bắt đầu bán ra sản phẩm này.
Vị lãnh đạo này cũng hy vọng Priv sẽ cải thiện tình hình kinh doanh, có lãi trong năm nay và giúp BlackBerry trụ lại trong thị trường smartphone bởi 2016 là năm quyết định hãng này có tiếp tục sản xuất điện thoại hay không. Nếu BlackBerry tiếp tục thua lỗ trong năm 2016, hãng sẽ từ bỏ mảng sản xuất điện thoại và sẽ cân nhắc ý tưởng bán doanh nghiệp. Tuy nhiên các fan của BlackBerry cũng không cần quá lo lắng vì vị CEO này "tin tưởng vào khả năng sinh lợi" trong năm nay.
BlackBerry 10 sẽ "tạm dừng" lại ở Passport Silver (bên trái) để nhường sân chơi cho BlackBerry chạy Android với sự khởi đầu của Priv (bên phải)
Với các fan của BlackBerry 10, CEO John Chen cho biết hãng không hoàn toàn bỏ rơi phần mềm này. Năm nay, BlackBerry tập trung lấy chứng nhận bảo mật cho BlackBerry 10 để các thiết bị này có thể được sử dụng trong các dự án doanh nghiệp và cơ quan chính phủ. Hãng sẽ tiếp tục bán ra BlackBerry Classic và các điện thoại BlackBerry cũ nhưng không đầu tư vào phần cứng mới.

Thứ Hai, 4 tháng 1, 2016

Javascript cơ bản – Hành trình của một Anh Hùng

Kiến thức cơ bản về HTML và CSS có thể giúp bạn tạo được website đơn giản. Nhưng nếu bạn mong muốn 1 website sinh động và phức tạp hơn, bạn cần Javascript. Javascript là ngôn ngữ lập trình đơn giản, nhưng cực kì mạnh mẽ và phổ biến cho lập trình web. Các ứng dụng thường thấy ở Javascript có thể kể đến như:
Tương tác với HTML và thay đổi nội dung và định dạng trên website dễ dàng.
Tương tác với các hành động của người dùng như nhấn chuột, gõ phím…
Xử lý và kiểm tra các dữ liệu trên form trước khi gửi về server.
Tạo và truy xuất thông tin lưu trong cookie trên máy người dùng.
Đóng vai trò như 1 ngôn ngữ lập trình phía server (sử dụng các framework như Node.js).
Có nhiều phương pháp để học Javascript, và tốt nhất là để người học được tự tay mày mò trong suốt quá trình tìm hiểu. Bài viết hôm nay sẽ áp dụng phương pháp đó, và tiếp cận nó theo một cách mới để mong bạn đọc dễ làm quen và hình dung hơn: gamification – trò chơi hóa nội dung bài học.
Hãy tưởng tượng bạn là nhân vật chính trong một game nhập vai, khởi đầu từ con số 0 tròn trĩnh để đấu tranh trở thành Anh Hùng trong cõi Javascript. Không gì hứa hẹn một hành trình bằng phẳng cả, nhưng đừng ngại ngần khi định mệnh đã gọi tên!
 INTRO CHAPTER!
Hãy tạo nên huyền thoại của riêng bạn về 1 Anh Hùng Javascript!
Javascript căn bản - Anh Hùng Javascript
Javascript có thể được sử dụng dễ dàng với thẻ HTML script: chỉ cần đưa các câu lệnh Javascript vào trong cặp thẻ hoặc nhúng 1 file Javascript bên ngoài.
01
02
03
04
05
06
07
<html>
<body>
<script type="text/javascript">
// Gõ code ở đây
</script>
</body>
</html>

01
02
03
04
05
<html>
<body>
<script type="text/javascript" src="đường-dẫn-đến-file-javascript.js"></script>
</body>
</html>
Tuy nhiên, trong hành trình Javascript cơ bản này, bạn không cần phải chèn code hay file Javascript vào 1 file html và chạy file này. Bạn sẽ gõ code trực tiếp trên trình duyệt bằng công cụ Console. Để mở Console, hãy bấm F12 và chọn tab Console ở khung công cụ lập trình được hiển thị, hoặc sử dụng phím tắt nhanh Ctrl+Shift+J (Chrome/Firefox).
Javascript căn bản - Công cụ Console
Trường hợp nếu bạn không muốn sử dụng Console để thực hành mà muốn viết lên web thì hãy sử dụng các phương thức xuất dữ liệu ra trang tên là document.write(). Ví dụ:
01
02
03
document.write("Tôi tên là Phúc!"); // Hiển thị chữ Tôi tên là Phúc ở website
var name = "Phúc";
document.write(name); // Hiển thị chữ Phúc ở website.
Xong chưa nào? Hãy sẵn sàng chinh phục những thử thách để viết nên câu chuyện về Anh Hùng Javascript của riêng bạn!
 WELCOME TO CHAPTER 1!
Chúc mừng bạn đã bắt đầu hành trình Anh Hùng Javascript!
Quest 1: Kiến tạo Anh Hùng – Biến và kiểu dữ liệu

Việc lưu trữ dữ liệu là một trong những điều quan trọng nhất khi lập trình. Thông thường, các dữ liệu tạm sẽ được lưu giữ bằng các biến (variable) trong bộ nhớ. Đối với Javascript, bạn cần khai báo biến bằng từ khóavar trước khi gán dữ liệu cho biến đó.
Mỗi Anh Hùng đều cần có 1 tên gọi để lưu danh sử sách, và tiện khoe với các em gái xinh đẹp trong quán rượu :”>. Hãy gõ lại đoạn code bên dưới vào Console và nhập tên vào hộp thoại được xổ ra.
 NEW SKILL!
Hàm prompt(): dùng để nhận nhập liệu từ người dùng và trả về dạng chuỗi kí tự.
Ví dụ làm quen với biến
01
02
var ten = prompt('Xin chào! Hãy gọi tên Anh Hùng của bạn:');
ten;
Hàm prompt() là hàm viết sẵn của hệ thống để nhận nhập liệu từ người dùng (ta sẽ tìm hiểu thêm về hàm ở phần sau). Kết quả của hàm sẽ trả về bất cứ gì người dùng nhập vào ở hộp thoại. Nếu bạn muốn sử dụng kết quả đó, bạn cần phải lưu trữ nó bằng 1 biến. Ở dòng thứ 1, ta đã khai báo biến ten và gán cho nó kết quả trả về của hàm prompt(). Sau này, bất cứ khi nào bạn cần, bạn chỉ cần gọi biến cần thiết để lấy dữ liệu mà biến đó giữ. Đó là lý do khi bạn gọi lên biến ten ở dòng 2, bạn sẽ thấy lại giá trị mà bạn vừa nhập. Sướng chưa 😀
Demo: http://jsfiddle.net/6QhmR/1/
Biến

Đoạn code trên là 1 ví dụ khi sử dụng biến. Hãy nghĩ 1 biến như 1 ngăn tủ được đặt tên, và tên biến là tên ngăn tủ, giá trị của biến là vật dụng trong ngăn tủ. Bạn có thể chứa bất kì thứ gì bạn muốn trong ngăn tủ đó, và khi cần tìm lại, bạn chỉ cần tra đúng tên ngăn tủ mà bạn cần.
Biến có 2 phần, là tên biến và giá trị của biến. Tên biến rất đơn giản, khi bạn có thể đặt tên biến tùy ý với các chữ cái hoa hay thường, các con số và dấu gạch chân (_). Còn với giá trị của biến thì chúng ta cần để ý thêm về kiểu dữ liệu. Ở ví dụ trên, ta đã dùng biến ten để chứa 1 hàm prompt và chứa dữ liệu kiểu string. Javascript hỗ trợ nhiều kiểu dữ liệu, nhưng ở mức cơ bản bạn sẽ cần nắm vững các kiểu dữ liệu sau:
String dùng để chứa chuỗi kí tự và phải được bao quanh bởi cặp nháy đơn (‘…’) hay nháy đôi (“…”).
Number dùng để chứa dữ liệu kiểu số nguyên, số thập phân và không nằm trong cặp nháy đơn hay nháy đôi.
Boolean là kiểu logic, chỉ có 2 giá trị là đúng (true) hoặc sai (false).
Object là một đối tượng nói chung với các thuộc tính và phương thức riêng. Ta sẽ tìm hiểu về Object ở phần 7.
Array là mảng, dùng để chứa tập hợp nhiều biến. Phần 8 sẽ giúp bạn hiểu rõ hơn.
Thao tác với biến

Để chứa đồ trong tủ, bạn cần phải tìm 1 ngăn tủ rỗng, dán tên cho ngăn tủ đó (khai báo biến) và đặt 1 vật gì đó vào bên trong (gán giá trị cho biến).
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Khai báo với từ khóa var
var level;
// Sau khi khai báo, dùng dấu = để gán giá trị
// Giá trị kiểu số (Number)
level = 1;
// Khai báo và gán 1 giá trị ngay lúc đó gọi là khởi tạo
// Giá trị kiểu boolean
var male = true;
// Giá trị kiểu chuỗi kí tự (String)
var phancap = "Anh Hùng";
/* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
* THỬ THÁCH LEVEL 1
* -----------------
* Khởi tạo thêm 3 biến để chứa thông tin về cấp độ (level),
* điểm kinh nghiệm (xp) và điểm kĩ năng (skillPoints).
* Giá trị khởi tạo của từng biến như sau:
* - Cấp độ: 1
* - Điểm kinh nghiệm: 0
* - Điểm kĩ năng: 5
* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
*/
Sau khi đặt xong biến, bạn có thể thử in ra bằng cách sử dụng hàm alert() để xem giá trị. Ví dụ:
01
02
03
var name = "Thachpham.com";
alert(name);

+ expand source
 LEVEL UP! Chúc mừng bạn lên cấp 2! XP +150
Quest 2: Sức mạnh tính toán – Các toán tử cơ bản

Javascript hỗ trợ đầy đủ các toán tử cơ bản cộng trừ nhân chia. Ngoài ra, bạn sẽ làm quen với 2 toán tử mới là ++ (tăng giá trị của biến kiểu Number lên 1.0 đơn vị) và — (giảm giá trị của biến kiểu Number xuống 1.0 đơn vị). Thứ tự tính toán (trong trường hợp không sử dụng dấu ngoặc tròn để gom nhóm ưu tiên) là nhân chia trước, cộng trừ sau và từ trái sang phải.
01
02
03
04
05
06
07
var level = 1;
var xp = 0;
var skillPoints = 5;
level = level + 1; // hoặc tương đương là level++;
xp = 150 * (level - 1) + 200; // sử dụng dấu ngoặc tròn để gom nhóm ưu tiên
skillPoints = skillPoints + xp / 10;
Ngoài ra, Javascript sử dụng toán tử + để nối các chuỗi kí tự.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Nối 3 chuỗi đơn giản
"Javascript" + " " + "căn bản";
// Nối 1 chuỗi và 1 biến String
ten + " sẽ là Anh Hùng Javascript";
// Nối 1 chuỗi với 1 biến Number
"Cấp độ hiện tại của bạn là " + level;
/* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
* THỬ THÁCH LEVEL 2
* -----------------
* Khởi tạo thêm 3 biến là strength, agility và intel.
* Sử dụng giá trị của điểm kĩ năng (skillPoints) phía trên
* và tính toán giá trị khởi tạo của các biến:
* - strength bằng 60% điểm kĩ năng cộng với 10% của điểm kinh nghiệm.
* - agility bằng 20% điểm kĩ năng cộng với 20% của điểm kinh nghiệm.
* - intel bằng 20% điểm kĩ năng cộng với 1000% của cấp độ.
* Sau khi tính toán xong, hãy xuất các chỉ số theo cú pháp:
* "Chỉ số strength của bạn là " + chỉ số
* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
*/

+ expand source
 LEVEL UP! Chúc mừng bạn lên cấp 3! XP +200
Quest 3: Sức mạnh logic – Các toán tử so sánh

Trên con đường hành hiệp, Anh Hùng sẽ gặp rất nhiều cám dỗ và lựa lọc. Chính vì thế, Anh Hùng cần phải so sánh chính xác và sử dụng sức mạnh logic để nhận ra chân tướng đúng/sai của mọi sự vật, sự việc.
Trong Javascript, kết quả của mọi so sánh đều là 1 biến kiểu boolean: hoặc là true, hoặc là false. Để so sánh giữa các biến hay các biểu thức, bạn có thể sử dụng === cho so sánh bằng, !== cho so sánh không bằng, <và > cho so sánh hơn kém.
 NEW SKILL!
Hàm console.log(): có thể được dùng để in giá trị của một biến.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// So sánh 2 biến String
var test1 = ("Javascript" === "JAVAscript");
var test2 = ("Javascript" === "Javascript");
var test3 = ("Javascript" !== "javascript");
console.log(test1);
console.log(test2);
console.log(test3);
// So sánh 2 biến Number
test1 = (1 > 2);
test2 = (0 < -5);
test3 = (1.5 === 1.4999);
console.log(test1);
console.log(test2);
console.log(test3);
// So sánh 2 biểu thức Number
test1 = (1 - 2 + 3 - 4) <= 5;
test2 = (1 - 2 + 3 - 4)/5 >= 1;
console.log(test1);
console.log(test2);
// So sánh 1 biến Number và 1 biến String
test3 = 15 === "15";
console.log(test3);
 LEVEL UP! Chúc mừng bạn lên cấp 4! XP +300
Quest 4: Lựa chọn định mệnh – Điều kiện và rẽ nhánh

Chúc mừng bạn đã nắm vững các kĩ năng cơ bản, và đã đến lúc để lựa chọn phân cấp Anh Hùng. Bạn sẽ được lựa chọn giữa 3 phân cấp với 3 đặc điểm về chỉ số khác nhau.
Các lựa chọn trong Javascript sẽ dẫn đến các điều kiện rẽ nhánh khác nhau. Để tạo ra các lựa chọn trong Javascript, bạn sẽ sử dụng từ khóa if hoặc if...else. Các lựa chọn có thể lồng ghép với nhau để tạo ra các luồng rẽ nhánh phức tạp. Tuy nhiên, cần cẩn trọng vì quá nhiều luồng rẽ nhánh sẽ khiến đoạn code khó hiểu và khó bảo trì về sau.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* Câu lệnh if thông thường
* ------------------------
* Biểu thức
* Khi biểu thức logic trong ngoặc
*/
if (level < 4) {
console.log('Bạn chưa đạt cấp độ tối thiểu để tham gia thử thách.');
}
// Câu lệnh if...else
if (level >= 4) {
console.log('Bạn đã đủ cấp độ để tham gia thử thách level 4.');
} else {
console.log('Bạn cần đạt ít nhất level 4 để tham gia thử thách.');
}
// Câu lệnh if...else if...else
if (level > 4) {
console.log('Bạn dư sức vượt qua thử thách level 4.');
} else if (level === 4) {
console.log('Bạn đủ sức vượt qua thử thách level 4.');
} else {
console.log('Về uống sữa thêm cho mau lớn nha cưng!');
}
// Ở phần 1, bạn đã khai báo biến <code>ten</code>
// và sử dụng để giữ giá trị về tên Anh Hùng của bạn
// Ta sẽ kiểm tra xem bạn có thể gọi lại chính xác không
// để thưởng hoặc phạt theo kết quả
var kiemTraTen = prompt('Tên Anh Hùng của bạn là gì?');
if (kiemTraTen === ten) {
console.log('Chính xác! Bạn có trí nhớ rất tốt! intel +5!');
intel = intel + 5;
} else {
console.log('Tệ thật! Tên chính mình mà không nhớ sao?! intel -5!');
intel = intel - 5;
}
/* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
* THỬ THÁCH LEVEL 4
* -----------------
* Sử dụng hàm prompt('Bạn muốn chọn phân cấp nào? a: Chiến
* Binh | b: Sát Thủ | c: Thợ Săn') để yêu cầu người
* dùng nhập vào 1 kí tự hoặc là a, hoặc b, hoặc c. Giá trị
* nhập vào sẽ được xử lý như sau:
* 1. Nếu là kí tự a:
* - Cập nhật phân cấp Anh Hùng (biến phancap): Chiến Binh.
* - Điều chỉnh chỉ số: strength +10, agility -10
* 2. Nếu là kí tự b:
* - Cập nhật phân cấp Anh Hùng (biến phancap): Sát Thủ.
* - Điều chỉnh chỉ số: strength -10, agility +5, intel +5
* 3. Nếu là kí tự c:
* - Cập nhật phân cấp Anh Hùng (biến phancap): Thợ Săn.
* - Điều chỉnh chỉ số: strength -10, intel +10
* 4. Nếu không phải 3 trường hợp trên
* - Không cập nhật và điều chỉnh gì cả.
* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
*/

+ expand source
 LEVEL UP! Chúc mừng bạn lên cấp 5! XP +400
Quest 5: Đấu trường Sinh Tử – Vòng lặp

Anh Hùng nào cũng phải trải qua quá trình tập luyện và đấu tranh gian khổ để đạt đến vinh quang. Quá trình đó đòi hỏi những nỗ lực lặp đi lặp lại đến khi đạt được một ý đồ, một mục đích nào đó.
Việc lặp các thao tác trong lập trình được gọi là vòng lặp, và là một trong những thành phần quan trọng nhất của lập trình. Vòng lặp sẽ có 1 điều kiện để duy trì và khi điều kiện đó không được đảm bảo thì vòng lặp sẽ kết thúc. Đối với Javascript cơ bản, có 2 cách để tạo vòng lặp: vòng lặp for và vòng lặp while. Cả 2 đều bao gồm 2 thành phần: điều kiện để duy trì vòng lặp, và thân vòng lặp chứa các thao tác sẽ được lặp.
Javascript căn bản - Ví dụ vòng lặp
01
02
03
04
05
06
07
08
09
10
11
12
13
// Ví dụ vòng lặp while
var i = 1;
while (i < 10) {
console.log(i);
i++;
}
console.log(i);
// Ví dụ vòng lặp for
for (var j = 1; j < 10;j++) {
console.log(j);
}
console.log(j);
 BATTLE! Bạn chạm trán 1 con rồng già, và buộc phải giết nó để vượt qua
 NEW SKILL!
Hàm Math.random(): dùng để tạo giá trị ngẫu nhiên từ 0 đến 1. Để tạo xác suất ngẫu nhiên theo %, có thể sử dụng (Math.random() * 100).
 NEW SKILL!
Hàm alert(): dùng để xuất một chuỗi kí tự qua hộp thoại thông báo. Có thể dùng để debug hay xuất thông tin cho người dùng.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* ========================================================
* Trước khi vào trận chiến, cần xem lại các chỉ số của bạn
* và xem xét các thông tin của đối thủ.
* ========================================================*/
level = 5; // Đảm bảo bạn sẽ ở cấp độ 5
var health=level*100;// Khi lượng máu <= 0 thì bạn sẽ chết
console.log(strength); // Quyết định mức sát thương
console.log(agility); // Quyết định xác suất né đòn
console.log(intel); // Quyết định xác suất chí mạng
/* ========================================================
* Rồng Già
* --------
* Chậm chạp và yếu ớt hơn so với đồng loại, nhưng vẫn rất
* nguy hiểm với khả năng phun lửa có thể gây sát thương chí
* mạng rất cao
* ========================================================*/
var dragonHealth = 600;
var dragonStr = 100;
var dragonAgi = 15;
var dragonInt = 80;
/* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
* THỬ THÁCH LEVEL 5
* -----------------
* Viết trò chơi Diệt Rồng theo các bước sau:
* 1. Mỗi lượt chơi, Anh Hùng và Rồng lần lượt tấn công nhau.
* => GỢI Ý: Sử dụng vòng lặp while.
* 2. Anh Hùng tấn công trước, Rồng tấn công sau.
* 3. Trò chơi kết thúc khi một phe hết máu (health < 0 hoặc dragonHealth < 0).
* => GỢI Ý: đặt 1 biến boolean để kiểm tra.
* 4. Sử dụng hàm (Math.random() * 100) để lấy xác suất ngẫu nhiên theo %.
* 5. Rồng né đòn thành công khi % xác suất ngẫu nhiên bé hơn dragonAgi.
* => GỢI Ý: so sánh dragonAgi với (Math.random() * 100).
* 6. Anh Hùng né đòn thành công khi % xác suất ngẫu nhiên bé hơn agility.
* => GỢI Ý: so sánh agility với (Math.random() * 100) (khác ở 5).
* 7. Sát thương do Anh Hùng gây ra bằng với chỉ số strength.
* => GỢI Ý: khi Anh Hùng đánh trúng, giảm máu Rồng theo giá trị sát thương.
* 8. Sát thương do Rồng gây ra bằng với chỉ số dragonStr.
* => GỢI Ý: khi Rồng đánh trúng, giảm máu Anh Hùng theo giá trị sát thương.
* 9. Anh Hùng gây sát thương chí mạng khi % xác suất ngẫu nhiên lớn hơn intel.
* => GỢI Ý: so sánh intel với 1 giá trị (Math.random() * 100) (khác ở 5 và 6).
* 10. Rồng gây sát thương chí mạng khi % xác suất ngẫu nhiên lớn hơn dragonInt.
* => GỢI Ý: so sánh dragonInt với 1 giá trị (Math.random() * 100) (khác ở 5,6,9)).
* 11. Sát thương chí mạng sẽ gây thêm 200% sát thương.
* => GỢI Ý: nếu gây sát thương chí mạng, giảm máu đi 2 lần sát thương.
*
* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
*/

?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var gameContinue = true;
while(gameContinue) {
// Anh hùng tấn công!
var heroHit = Math.random()*100 > dragonAgi;
if (heroHit) {
dragonHealth = dragonHealth - strength;
alert('TRẢM LONG! Bạn gây sát thương '+strength+' điểm cho Rồng!');
var heroCritical = Math.random()*100 < intel;
if (heroCritical) {
dragonHealth = dragonHealth - strength*2; // Double damage
alert('CHÍ MẠNG! Bạn gây sát thương chí mạng thêm '+strength*2+' điểm cho Rồng!');
}
} else alert('XÍ HỤT! Rồng đã lượn tránh được đòn tấn công của Bạn!');
// Rồng tấn công!
var dragonHit = Math.random()*100 > agility;
if (dragonHealth <= 0) {
// Rồng lên bàn thờ
gameContinue = false;
alert('CHIẾN THẮNG!!! Chúc mừng bạn đã chiến thắng!!!');
} else {
if (dragonHit) {
health = health - dragonStr;
alert('HỎA CẦU! Rồng gây sát thương '+dragonStr+' điểm cho Bạn!');
var dragonCritical = Math.random()*100 < dragonInt;
if (dragonCritical) {
health = health - dragonStr*2; // Double damage
alert('CHÍ MẠNG! Rồng gây sát thương chí mạng thêm '+dragonStr*2+' điểm cho Bạn!');
}
} else alert('XÍ HỤT! Bạn đã tránh được đòn tấn công từ Rồng!');
}
// Kiểm tra xem Anh Hùng có bị nướng?!
if (health <= 0) {
gameContinue = false;
alert('THẤT BẠI!!! Chúc mừng bạn đã có tên trên menu món tối của Rồng: Hiệp sĩ nướng lá lốt!');
}
};
 BATTLE WON! Chúc mừng bạn đã đạt danh hiệu “Dũng sĩ diệt Rồng”!
 LEVEL UP! Chúc mừng bạn lên cấp 6! XP +600
Quest 6: Tạo và gọi Hàm

Hàm là 1 đoạn code riêng biệt có thể sử dụng nhiều lần. Hàm có thể nhận tham số từ biến và trả kết quả về để gán cho biến.
Trước khi sử dụng, hàm cần được khởi tạo với từ khóa function tênHàm(thamSố1, thamSố2). Mọi biến mà hàm cần sử dụng từ bên ngoài hàm được truyền vào giữa hai ngoặc, và được gọi là tham số. Để bắt hàm trả về 1 giá trị nào đó, bạn cần sử dụng từ khóa return tênBiếnMuốnTrảVề;. return sẽ kết thúc hàm ngay lập tức, nên nếu có câu lệnh nào phía sau, câu lệnh đó sẽ không được thực thi.
Một lưu ý khi sử dụng hàm là đừng ôm đồm quá nhiều xử lý trong một hàm. 1 hàm xử lý chuỗi không cần phải biết đầy đủ cắt chuỗi, đảo chuỗi, nhân đôi chuỗi.., mà chỉ cần thực hiện tốt 1 chức năng thôi. Đây là một thói quen lập trình tốt, sẽ giúp code đơn giản, dễ hiểu và dễ bảo trì qua thời gian.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Lấy ví dụ trò chơi diệt Rồng ở phần 5
// Tạo hàm gây sát thương để giảm máu
// Tham số truyền vào: biến Number satThuong
// Kết quả trả về: biến Number luongMauHienTai
function gaySatThuong(luongMauHienTai, satThuong) {
luongMauHienTai = luongMauHienTai - satThuong;
return luongMauHienTai;
}
// Để sử dụng hàm, bạn cần phải gọi hàm
var luongMau = 100;
var satThuong = 49;
var luongMauConLai = gaySatThuong(luongMau, satThuong);
console.log(luongMauConLai);
/* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
* THỬ THÁCH LEVEL 6
* -----------------
* Viết lại trò chơi Diệt Rồng, có sử dụng hàm để:
* 1. Tính toán khả năng né đòn.
* 2. Tính toán lượng máu còn lại sau khi bị sát thương.
*
* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
*/
 LEVEL UP! Chúc mừng bạn lên cấp 7! XP +700
Quest 7: Đối tượng

Đối tượng Javascript cũng giống như một vật thể thực ngoài đời: có các tính chất (thuộc tính) và khả năng (phương thức/hàm). Hiểu một cách khác, đối tượng trong Javascript là tập hợp của các thuộc tính và các phương thức (về bản chất cũng là hàm) bên trong.
Có thể xem đối tượng như 1 biến đặc biệt trong Javascript, được khai báo trong cặp ngoặc nhọn {...} và sử dụng dấu . để truy xuất các thuộc tính và phương thức bên trong.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Cú pháp khai báo 1 đối tượng
var RongGia = {
// Khai báo các thuộc tính
name: 'Rồng Già',
phanLop: 'Rồng',
age: 6969,
health: 600,
strength: 100,
agility: 15,
intel: 80,
// Khai báo các phương thức
bay: function() {
console.log('Flappy Dragon!');
},
phunLửa: function() {
console.log('Rồng phun lửa');
},
ngủ: function() {
console.log('Zzz... Zzz...');
}
};
// Sử dụng các thuộc tính như biến thông thường
console.log(RongGia.name);
console.log(RongGia.phanLop);
console.log(RongGia.age);
// Sử dụng phương thức như gọi hàm bình thường
RongGia.bay();
RongGia.phunLửa();
RongGia.ngủ();
// Bạn cũng có thể thêm các thuộc tính và phương thức
// sau khi đã khởi tạo đối tượng
RongGia.level = 10;
RongGia.chết = function() {
console.log('Rồng lên bàn thờ!');
};
/* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
* THỬ THÁCH LEVEL 7
* -----------------
* Khai báo một đối tượng AnhHung để chứa các thông tin về
* Anh Hùng của bạn:
* 1. Các thuộc tính: tên, phân lớp, cấp độ, các chỉ số..
* 2. Các phương thức ví dụ như đi, chạy, nhảy, ngủ..
*
* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
*/
 LEVEL UP! Chúc mừng bạn lên cấp 8! XP +800
Quest 8: Mảng

Mảng là tập hợp nhiều phần tử, với mỗi phần từ là 1 biến được sắp xếp theo thứ tự và có đánh số chỉ mục (đánh số từ 0) cho từng biến để tiện truy xuất. Mỗi biến trong mảng có thể mang bất kì kiểu dữ liệu nào: từ Number, String đến cả đối tượng và mảng khác. Các biến trong mảng được đánh số tuần tự tăng dần từ 0, nên biến cuối cùng trong mảng sẽ có số chỉ mục bằng tổng số lượng biến trừ đi 1.
Mảng được khai báo bên trong cặp ngoặc vuông var tênMảng = [biến1, biến2];. Các biến bên trong cũng được truy xuất bằng ngoặc vuông theo cú pháp tênBiến[sốChỉMục]. Số lượng các phần tử bên trong mảng có thể được truy xuất nhanh bằng thuộc tính tênBiến.length (vì bản chất Mảng Javascript cũng là 1 đối tượng). Ngoài ra, để thêm phần tử vào 1 mảng đã được khởi tạo, bạn cần sử dụng phương thức tênBiến.push().
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Khai báo và khởi tạo mảng ví dụ
var phanlopAnhHung = ['Chiến Binh','Sát Thủ','Thợ Săn'];
console.log(phanlopAnhHung.length);
console.log(phanlopAnhHung[0]);
console.log(phanlopAnhHung[1]);
console.log(phanlopAnhHung[phanlopAnhHung.length - 1]);
// hàm console.log() rất hữu ích để xem toàn bộ phần tử trong mảng
console.log(phanlopAnhHung);
// Mảng rỗng
var danhHieu = [];
// Thêm phần tử mới
danhHieu.push('Dũng sĩ diệt rồng');
console.log(danhHieu);
phanlopAnhHung.push('Anh Hùng');
console.log(phanlopAnhHung.length);
console.log(phanlopAnhHung[phanlopAnhHung.length - 1]);
// Truy xuất từng phẩn tử trong mảng với vòng lặp
var soPhanTu = phanlopAnhHung.length;
for (var i=0; i < soPhanTu; i++) {
console.log(phanlopAnhHung[i ]);
}
/* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
* THỬ THÁCH LEVEL 8
* -----------------
* Hãy sử dụng vòng lặp và hàm prompt() để yêu cầu người dùng
* nhập vào câu trả lời cho 3 câu hỏi sau:
* 1. Bạn có người yêu chưa?
* 2. Bạn có thích ăn rau dền không?
* 3. Người yêu bạn có thích ăn rau dền không?
* Sau đó, lưu tất cả câu trả lời vào 1 mảng và xuất ngược lại
* từng câu trả lời bằng hàm alert().
*
* =========================================================
* | HÃY TỰ TAY CODE TRƯỚC KHI KÉO XUỐNG XEM CODE MẪU! |
* =========================================================
*/
xpand source
 CHAPTER 1 COMPLETE! Chúc mừng bạn đã trở thành Tân Anh Hùng Javascript!
Xem thêm: http://huutienjdk.blogspot.com/2015/06/voi-meta35-cho-phep-ban-de-dang-chuyen.html

Thứ Ba, 16 tháng 6, 2015

Với Meta35 cho phép bạn dễ dàng chuyển thông tin Metadata từ một số máy ảnh phim

Nếu bạn vẫn còn chụp phim, thì bạn sẽ biết sự khó khăn như thế nào để có thể hệ thống hóa hay quản lý đúng hình ảnh của bạn một khi nó đã được số hóa vào máy tính của bạn. Những máy ảnh kỹ thuật số hiện nay cho phép chúng ta dễ dàng hệ thống hóa hay quản lý hình ảnh bằng thông tin metadata hay còn gọi là exif được mặc định chèn theo file ảnh khi chúng ta chụp xong, nó cung cấp mọi thông tin bạn có thể cần như thông tin ngày tháng chụp, tốc độ, khẩu độ, ISO,... Trong khi những hình ảnh được scan bằng kỹ thuật số của những cuộn film lại không chứa dữ liệu đó. Tuy nhiên với Meta35 thì việc đó không còn quan trọng nữa, Meta35 là một sản phẩm mới vừa được giới thiệu bởi Promote Systems, nó là một thiết bị giúp chúng ta dễ dàng nhập và đồng bộ dữ liệu metadata từ máy ảnh phim của bạn.

Meta35 2.
Meta35 là một thiết bị USB nhỏ gọn bao gồm các adapter kết nối với máy ảnh film Nikon, Canon hoặc Minolta để chuyển metadata từ máy ảnh film vào file ảnh đã được số hóa. Hiện tại, không phải tất cả các máy ảnh film đều tương thích với thiết bị này, những máy ảnh tương thích bao gồm: Canon EOS 1V, Nikon F6, Nikon F5, Nikon F100, Nikon N90s/ F90s, Nikon N90/ F90, Minolta Maxxum 9/ DYNAX 9/ Alpha 9, và Minolta Maxxum 7/ DYNAX 7/ Alpha 7. Và không phải mọi máy ảnh đều có thể nhập khẩu cùng một dữ liệu như nhau, do đó bạn có thể vào website của hãng để có thể kiểm tra thông tin chi tiết hơn cho từng loại máy ảnh tương thích.

Meta35 3.
Nếu bạn có một trong các máy ảnh như đã đề cập ở trên, bạn đã có thể bắt đầu tải về và đồng bộ hóa dữ liệu của bạn. Sau khi hình ảnh của bạn đã được scan vào máy tính, bạn chỉ cần kết nối máy ảnh của bạn qua cáp adapter đi kèm và chạy phần mềm Meta35 cho Windows hoặc Macintosh tương ứng. Bạn có thể xem tất cả dữ liệu metadata gần nhất được máy ảnh ghi lại và đồng bộ nó vào từng hình ảnh có liên quan của bạn trong khi bạn cũng có thể thêm các thông tin metadata mở rộng chính xác hơn tùy thích.




Meta35 cũng cho phép bạn tùy chỉnh các thiết lập firmware của máy ảnh, như các khả năng bao gồm tự động tua phim, kích hoạt tự động lấy nét, focus point wraparounds, chức năng của các nút bấm khác nhau, và nhiều hơn nữa... Phần mềm sẽ xác định máy ảnh và model cần tạo chính xác và độ tương thích linh hoạt của firmware.

Mets35 đã được bán ra từ ngày 15 tháng 06 năm 2015 này tại website chính hãng với giá bán ra là 149 USD. Yêu cầu hệ thống tối thiểu hơi cao: Windows 7 hoặc Macintosh OS X 10.9.

Thứ Ba, 2 tháng 6, 2015

Teaser trailer đầu tiên của “The Good Dinosaur”, bộ phim thứ hai của Pixar trong năm 2015, vừa được phát hành.

Teaser trailer đầu tiên của “The Good Dinosaur”, bộ phim thứ hai của Pixar trong năm 2015, vừa được phát hành.

Đây là lần đầu tiên trong một năm hãng Pixar phát hành hai bộ phim là Inside Out và The Good Dinosaur. Tuy nhiên, trong khi dự án đầu tiên (dự kiến ra mắt vào 21/8) được quảng bá khá nhiều, thì bộ phim thứ hai gần như được thực hiện trong vòng bí mật. Hãng phim rất kín tiếng về dự án này và khán giả cũng biết rất ít thông tin về The Good Dinosaur, ngoài một vài bức ảnh tạo hình công bố cách đây khá lâu.
 
 
Nhưng cuối cùng Pixar cũng đã chịu phát hành teaser trailer đầu tiên của The Good Dinosaur. Được công bố qua trang Yahoo! Movies, đoạn clip có thời lượng hơn một phút và chưa tiết lộ nhiều về nội dung, nhưng nó mang lại cho người xem một cái nhìn thoáng qua về phong cách của tác phẩm này.

Như những gì mọi người từng biết, cách đây hàng triệu năm, một vụ va chạm với tiểu hành tinh đã gây ra cơn đại hồng thủy và giết chết toàn bộ khủng long trên trái đất. Tuy nhiên, các tác giả The Good Dinosaur đặt ra một giả thuyết: nếu tiểu hành tinh kia chỉ bay ngang qua bầu trời, thì việc gì sẽ xảy ra? Lúc này, có lẽ những chú khủng long vẫn tiếp tục sinh sống và rất có thể, con người và khủng long sẽ trở thành những người bạn tốt. 

Teaser đầu tiên của "The Good Dinosaur"
 
 
 
Nhân vật chính trong phim là chú khủng long Arlo (Lucas Neff lồng tiếng). Sau một sự kiện đau buồn khiến cộng đồng của Arlo tan tác, cậu được giao nhiệm vụ khôi phục hòa bình nơi quê hương mình. Trên đường đi, Arlo gặp một người bạn đồng hành kỳ lạ - một cậu bé tên Spot. Trong chuyến đi, họ băng qua những khu vực có địa hình hiểm trở, khắc nghiệt. Arlo đã tìm được sức mạnh để đối đầu với nỗi sợ hãi của mình và phát hiện ra khả năng thật của bản thân.
The Good Dinosaur là bộ phim dài đầu tay của đạo diễn Peter Sohn. Ông chính là người từng đứng sau máy quay của bộ phim hoạt hình Pixar ngắn Partly Cloudy và đóng vai trò là người làm kịch bản đồ họa trong các bộ phim Ratatouille và WALL-E. Trong một cuộc phỏng vấn với Yahoo! Movies, Peter Sohn cho biết, trong bộ phim Arlo và Spot đã trở thành những người bạn. Giữa hai nhân vật nảy sinh cảm xúc và kết nối với nhau giống như một gia đình. Đây quả là một chi tiết hoàn toàn trái ngược với thực tế. 
 
 

Tuy nhiên, Peter Sohn nói một số loài khủng long hiền lành trong lịch sử được miêu tả khá mơ hồ, do đó các nhà làm phim không lo lắng quá nhiều về việc phải giải thích tại sao con người lại có lúc làm bạn với khủng long. Ông nói: “Đúng là chúng ta ít có tài liệu nào đề cập đến hoạt động sống của những con khủng long mà chúng tôi gọi là khủng long tốt bụng. Thật thú vị khi hình dung về chúng, nếu trận đại hồng thủy không xảy đến. Điều này cho phép chúng tôi đặt ra một thứ logic mới trong bộ phim". 
 

Tại CinemaCon, CEO của Disney là John Lasseter cho biết: "Đây là một câu chuyện thông thường giữa một cậu bé và một con chó, nhưng trong The Good Dinosaur thì các vai trò được đảo ngược. Khủng long Arlo là cậu bé, còn Spot chính là chú chó nhỏ. Bộ phim không giống như bất cứ những dự án chúng ta đã có trước đây. Tuy nhiên, chúng tôi đang phấn đấu để các sự kiện trong phim trở nên thuyết phục nhất". 
 

Tham gia vào phim có các diễn viên lồng tiếng Bill Hader (Inside Out), Neil Patrick Harris (How I Met Your Mother), John Lithgow (Interstellar), Frances McDormand (Olive Kitteridge) và Judy Greer (Married). The Good Dinosaur sẽ ra rạp vào ngày 25/11 tới

Advertise