Viết, Chạy & Chia sẻ mã Javascript trực tuyến bằng trình biên dịch trực tuyến JS của OneCompiler miễn phí. Đây là một trong những trình biên dịch trực tuyến mạnh mẽ, giàu tính năng dành cho ngôn ngữ Javascript. Bắt đầu với trình soạn thảo Javascript của OneCompiler thật dễ dàng và nhanh chóng. Trình chỉnh sửa hiển thị mã soạn sẵn mẫu khi bạn chọn ngôn ngữ là Javascript và bắt đầu viết mã
Javascript [JS] là ngôn ngữ lập trình hướng đối tượng tuân theo Tiêu chuẩn tập lệnh ECMA. Javascript là cần thiết để thiết kế hành vi của các trang web
- Mã nguồn mở
- Ngôn ngữ được biên dịch đúng lúc
- Được nhúng cùng với HTML và làm cho các trang web trở nên sống động
- Ban đầu được đặt tên là LiveScript
- Có thể thực thi trong cả trình duyệt và máy chủ có các công cụ Javascript như V8 [chrome], SpiderMonkey [Firefox], v.v.
sự định nghĩa biến
KeywordDescriptionScopevarVar dùng để khai báo biến [cách khai báo biến cũ] Hàm hoặc scopeletlet toàn cục cũng dùng để khai báo biến [cách mới] Scopeconst toàn cục hoặc khối dùng để khai báo giá trị const. Sau khi giá trị được gán, nó không thể được sửa đổi Phạm vi toàn cầu hoặc khốiBacktick Chuỗi
nội suy
let greetings = `Hello ${name}`
Chuỗi nhiều dòng
const msg = `
hello
world!
`
Mảng
Một mảng là một tập hợp các mục hoặc giá trị
cú pháp
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
Ví dụ
let mobiles = ["iPhone", "Samsung", "Pixel"];
// accessing an array
console.log[mobiles[0]];
// changing an array element
mobiles[3] = "Nokia";
chức năng mũi tên
Arrow Functions giúp các nhà phát triển viết mã một cách ngắn gọn, được giới thiệu trong ES6.
Các hàm mũi tên có thể được viết theo nhiều cách. Dưới đây là một số cách để sử dụng chức năng mũi tên nhưng nó cũng có thể được viết theo nhiều cách khác.
cú pháp
[] => expression
Ví dụ
const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
const squaresOfEvenNumbers = numbers.filter[ele => ele % 2 == 0]
.map[ele => ele ** 2];
console.log[squaresOfEvenNumbers];
hủy cấu trúc
Mảng
let [firstName, lastName] = ['Foo', 'Bar']
Các đối tượng
let {firstName, lastName} = {
firstName: 'Foo',
lastName: 'Bar'
}
còn lại[. ] nhà điều hành
________số 8Truyền đi[. ] nhà điều hành
//Object spread
const post = {
...options,
type: "new"
}
//array spread
const users = [
...adminUsers,
...normalUsers
]
Chức năng
const msg = `
hello
world!
`
0vòng lặp
1. Nếu
IF được sử dụng để thực thi một khối mã dựa trên một điều kiện
cú pháp
const msg = `
hello
world!
`
12. Nếu khác
Phần khác được sử dụng để thực thi khối mã khi điều kiện không thành công
cú pháp
const msg = `
hello
world!
`
23. Công tắc điện
Switch được sử dụng để thay thế các câu lệnh If-Else lồng nhau
cú pháp
const msg = `
hello
world!
`
34. Vì
Vòng lặp for được sử dụng để lặp lại một tập hợp các câu lệnh dựa trên một điều kiện
const msg = `
hello
world!
`
45. Trong khi
While cũng được sử dụng để lặp lại một tập hợp các câu lệnh dựa trên một điều kiện. Thông thường, while được ưu tiên khi không biết trước số lần lặp
const msg = `
hello
world!
`
56. Làm trong khi
Do-while cũng được sử dụng để lặp lại một tập hợp các câu lệnh dựa trên một điều kiện. Nó chủ yếu được sử dụng khi bạn cần thực hiện các câu lệnh ít nhất một lần
const msg = `
hello
world!
`
6Các lớp học
ES6 đã giới thiệu các lớp cùng với các khái niệm OOPS trong JS. Lớp tương tự như một chức năng mà bạn có thể nghĩ giống như một loại khuôn mẫu sẽ được gọi khi bạn khởi tạo lớp
Đảo ngược một chuỗi không phải là hiếm trong quá trình phát triển và khá phổ biến đối với các câu hỏi phỏng vấn cấp đầu vào. Với JavaScript, chúng ta có nhiều cách để đảo ngược một chuỗi. Chúng ta có thể sử dụng kết hợp các phương thức chuỗi _______ 60 cũng như các phương thức mảng _______ 61 và
let [firstName, lastName] = ['Foo', 'Bar']
2 [vì cuối cùng các chuỗi là các mảng ký tự]Chúng ta cũng có thể đảo ngược một chuỗi bằng các hàm lặp [vòng lặp] hoặc hàm đệ quy của riêng mình
Trong hướng dẫn này, chúng ta sẽ xem xét một số cách để đảo ngược chuỗi trong JavaScript
Sử dụng các phương thức tích hợp để đảo ngược chuỗi - split[], reverse[] và join[]
Cách đơn giản nhất để đảo ngược một chuỗi trong JavaScript là tách một chuỗi thành một mảng,
let [firstName, lastName] = ['Foo', 'Bar']
1 nó và let [firstName, lastName] = ['Foo', 'Bar']
2 nó trở lại thành một chuỗi. Với ES6, điều này có thể được rút ngắn và đơn giản hóa thànhỞ đây, Cú pháp trải rộng được sử dụng để phân tách chuỗi thành một mảng và có chức năng tương đương với phương thức
let [firstName, lastName] = ['Foo', 'Bar']
0 mà bạn cũng có thể sử dụng thay thếĐể hiểu tại sao tất cả chúng hoạt động cùng nhau, hãy xem tổng quan về chức năng của từng chức năng
tách ra[]
Phương thức
let [firstName, lastName] = ['Foo', 'Bar']
0 trả về một mảng chuỗi mới sau khi tách một chuỗi bằng dấu tách được cung cấpconst msg = `
hello
world!
`
7const msg = `
hello
world!
`
84 xác định nơi chuỗi phân tách thành một phần tử trong mảng kết quả. Chúng ta có thể xác định số lượng phần tử mảng với tham số const msg = `
hello
world!
`
85. Khi chúng ta sử dụng phương thức let [firstName, lastName] = ['Foo', 'Bar']
0 với chuỗi rỗng, const msg = `
hello
world!
`
87, chuỗi sẽ được chia theo từng ký tự. Nó sẽ hữu ích khi chúng ta chuyển đổi chuỗi của mình thành một mảng các ký tự riêng lẻMột lần nữa, bạn có thể sử dụng toán tử trải rộng để đạt được kết quả tương tự. Toán tử trải rộng là một toán tử JavaScript hoạt động trên các lần lặp như mảng, chuỗi và đối tượng. Chúng ta có thể sao chép và nối các đối tượng và mảng bằng toán tử trải rộng
Khi toán tử trải rộng được sử dụng với một chuỗi, chuỗi đó được chuyển đổi thành một chuỗi ký tự
Ghi chú. Trong khi tách các ký tự UTF-16, hãy sử dụng toán tử trải rộng thay vì phương thức
let [firstName, lastName] = ['Foo', 'Bar']
0đảo ngược[]
let [firstName, lastName] = ['Foo', 'Bar']
1 trả về một mảng bị đảo ngược, tại chỗ. Điều đó có nghĩa là - kết quả là mảng ban đầu bị đảo ngược thay vì một bản saoTuy nhiên, bạn không cần gán kết quả cho một biến mới, chúng tôi thường làm để thay đổi tên biến thành một tên mang tính biểu thị hơn
tham gia[]
Phương thức
let [firstName, lastName] = ['Foo', 'Bar']
2 nối các phần tử của một mảng và trả về một chuỗi. Chúng tôi cũng có thể chỉ định một const msg = `
hello
world!
`
84, là tùy chọn, để nối các phần tử. Khi chúng ta sử dụng dấu phân cách mặc định, các phần tử sẽ được phân tách bằng dấu phẩy trong chuỗi. Sử dụng một chuỗi rỗng làm dấu phân cách sẽ nối các phần tử mảng và trả về dưới dạng một chuỗi như bình thườngKết hợp các phương thức tích hợp để đảo ngược chuỗi
Với tất cả những điều đó trong tâm trí - cách những thứ này hoạt động cùng nhau trở nên trực quan
Hoặc, bạn có thể rút ngắn nó xuống
Đoạn mã trên dẫn đến
const msg = `
hello
world!
`
8Sử dụng vòng lặp for để đảo ngược chuỗi
Với vòng lặp for, chúng ta có thể lặp qua từng ký tự trong chuỗi. Bắt đầu từ cuối chuỗi đến đầu chuỗi - chúng ta có thể liên tục nối các ký tự vào một chuỗi mới và do đó tạo thành một chuỗi đảo ngược
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
3Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
Ở đây, chúng tôi đã tạo một chuỗi rỗng,
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
32, để giữ chuỗi bị đảo ngược. Chỉ số chuỗi giống như chỉ số mảng, chúng bắt đầu từ 0. Do đó, chúng tôi bắt đầu vòng lặp từ một vòng nhỏ hơn độ dài của chuỗi [nhặt ký tự let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
33] và lặp cho đến khi bộ đếm của chúng tôi về 0 [với ký tự let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
34]Biến
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
32 nối các phần tử của chuỗiChạy mã cho chúng tôi đầu ra này
const msg = `
hello
world!
`
8Sử dụng đệ quy để đảo ngược chuỗi
Đệ quy là một quá trình mà một hàm gọi chính nó. Tuy nhiên, một chức năng gọi chính nó có thể kết thúc việc gọi chính nó vô tận và quá trình sẽ không bao giờ kết thúc nếu không có điều kiện thoát. Do đó, chúng tôi cung cấp một điều kiện, cụ thể là điều kiện cơ sở, để kết thúc hành vi đệ quy của hàm
Chúng ta có thể sử dụng đệ quy để giải quyết các vấn đề bằng cách viết rất ít dòng mã mà không gặp rắc rối khi lặp lại. Tuy nhiên, quá trình này có thể chậm nếu độ sâu đệ quy cao
Cú pháp của một hàm đệ quy chung trông như thế này
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
9Khi hàm
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
36 được gọi, trước tiên, hàm này sẽ kiểm tra một số điều kiện và nếu được đánh giá là let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
37 - hàm sẽ tự gọi. Quá trình này sau đó được lặp lại, một lần nữa và một lần nữa. Khi điều kiện không thành công, đệ quy bị dừng và hàm trả về một giá trịChúng ta có thể sử dụng đệ quy để đảo ngược một chuỗi trong JavaScript bằng một số phương thức chuỗi như
38 vàlet arrayName = [value1, value2,..etc]; // or let arrayName = new Array["value1","value2",..etc];
39let arrayName = [value1, value2,..etc]; // or let arrayName = new Array["value1","value2",..etc];
Phương thức
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
38 trích xuất một phần của chuỗi. Chúng ta có thể chuyển các chỉ số bắt đầu và kết thúc trong phương thức dưới dạng tham số. Nếu chỉ chỉ mục bắt đầu được cung cấp cho phương thức - nó sẽ trích xuất chuỗi từ chỉ mục đó cho đến chỉ mục cuối cùngTuy nhiên, khi chúng tôi cung cấp cả chỉ mục bắt đầu và chỉ mục kết thúc, nó sẽ trích xuất chuỗi từ chỉ mục bắt đầu nhưng không bao gồm chỉ mục kết thúc
Phương thức
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
39 trích xuất ký tự được lập chỉ mục từ một chuỗi. Nó trả về một chuỗi mới bao gồm ký tự. Một ví dụ về phương pháp được hiển thị dưới đâyĐối với hàm đệ quy của chúng tôi - trước tiên chúng tôi kiểm tra xem chuỗi có trống làm điều kiện cơ sở không. Sau một loạt các cuộc gọi đệ quy, chuỗi sẽ trở nên trống rỗng và quá trình đệ quy sẽ kết thúc. Bên trong hàm
let [firstName, lastName] = ['Foo', 'Bar']
1, hàm đệ quy let [firstName, lastName] = ['Foo', 'Bar']
1 được cung cấp const msg = `
hello
world!
`
84 làm tham số của nóPhương thức
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
39 được nối với hàm let [firstName, lastName] = ['Foo', 'Bar']
1 trong câu lệnh returnlet mobiles = ["iPhone", "Samsung", "Pixel"];
// accessing an array
console.log[mobiles[0]];
// changing an array element
mobiles[3] = "Nokia";
8Trong lần gọi đệ quy đầu tiên,
const msg = `
hello
world!
`
87 sẽ cho kết quả là const msg = `
hello
world!
`
88. Trong lần gọi thứ hai, const msg = `
hello
world!
`
89 sẽ cho kết quả là let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
90. Tương tự như vậy, lời gọi đệ quy cuối cùng, let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
91 sẽ trả về một let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
92Bây giờ việc thực thi phần
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
93 đã kết thúc và đệ quy sẽ quay trở lại độ sâu của nó. Ở lần gọi cuối cùng, chuỗi let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
33 được thêm vào let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
95, kết quả là chuỗi let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
33Tiếp theo, lệnh gọi hàm di chuyển lên trên một bước khi chuỗi
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
97 được thêm vào let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
98. Nó làm cho chuỗi let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
99. Tương tự như vậy, let mobiles = ["iPhone", "Samsung", "Pixel"];
// accessing an array
console.log[mobiles[0]];
// changing an array element
mobiles[3] = "Nokia";
80 được thêm vào với let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
99 và nó trở thành let mobiles = ["iPhone", "Samsung", "Pixel"];
// accessing an array
console.log[mobiles[0]];
// changing an array element
mobiles[3] = "Nokia";
82. Tương tự, độ sâu đệ quy được duyệt lên trên và cuối cùng nó trả về chuỗi let mobiles = ["iPhone", "Samsung", "Pixel"];
// accessing an array
console.log[mobiles[0]];
// changing an array element
mobiles[3] = "Nokia";
83const msg = `
hello
world!
`
8Phần kết luận
Trong bài viết này, chúng tôi đã thảo luận về cách đảo ngược một chuỗi. Chúng tôi đã sử dụng các phương thức tích hợp sẵn
let [firstName, lastName] = ['Foo', 'Bar']
0, let [firstName, lastName] = ['Foo', 'Bar']
1 và let [firstName, lastName] = ['Foo', 'Bar']
2, toán tử trải rộng, tạo vòng lặp let mobiles = ["iPhone", "Samsung", "Pixel"];
// accessing an array
console.log[mobiles[0]];
// changing an array element
mobiles[3] = "Nokia";
87 để tạo chuỗi đảo ngược mới và hàm đệ quy sử dụng let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
38 và let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array["value1","value2",..etc];
39, tất cả đều tạo ra kết quả giống nhau