Đây không phải là chức năng tích hợp trong javascript

Câu hỏi này mở ra rất nhiều cánh cửa cho người mới bắt đầu hiểu thêm về cách thức hoạt động của Javascript và đã giúp tôi. Các câu trả lời/nhận xét được đưa ra trong khi hữu ích chỉ dừng lại ở bức tranh lớn hơn mà tôi nghĩ có thể hữu ích. Tôi đã viết một câu trả lời theo cách giả định kiến ​​thức hạn chế đối với người muốn có câu trả lời. Trong năm 2016 đó sẽ là op

Javascript được xây dựng để chạy trong một môi trường khác chứ không phải trên máy tính để bàn hoặc máy chủ hoặc bất kỳ tính năng lập trình nào khác. Trong trường hợp này ở đây, Trình duyệt. Nó được xây dựng để tương tác với API của Trình duyệt, chẳng hạn như DOM và các API Trình duyệt hữu ích khác đã đăng ngày tháng đó. Bản thân Javascript không đi kèm với các mô-đun tích hợp e. g. để truy cập hệ thống máy chủ của người dùng/tạo giao diện người dùng. Nó không cần điều này để thực hiện những gì nó được tạo ra cho. Nó không giống như Python hay Java đi kèm với các mô-đun tích hợp có thể truy cập các hệ thống tệp cùng với nhiều khả năng khác thông qua Thư viện/mô-đun tích hợp sẵn của nó. Có, giống như bất kỳ ngôn ngữ nào, chúng tôi có thể cài đặt thư viện để truy cập hệ thống tệp, tuy nhiên, điều này sẽ bị chặn bởi tính bảo mật của Hộp cát trình duyệt

Javascript

Có, Javascript là Ngôn ngữ lập trình nhưng nó thường được gọi là "Ngôn ngữ viết kịch bản" mặc dù tôi chưa thấy đó là một thuật ngữ chính thức ngoài một thuật ngữ mô tả tốt về nó

ECMAScript là một tiêu chuẩn mà tất cả các Công cụ JS trong trình duyệt đều tuân thủ. Khi viết mã javascript, chúng tôi mong đợi kết quả dựa trên đặc tả ECMAScript. Nếu sử dụng Chức năng riêng của chúng tôi e. g

Const sayName(name) = ()=> {
  return name
} 

sayName('Kevin')

Công cụ JS (một chương trình khác được viết bằng Ngôn ngữ khác, phổ biến hơn là C++) diễn giải mã của chúng tôi trong quá trình thực thi. Công cụ JS có nhiều chức năng khác nhau có thể được gọi và trong quá trình thực thi hiện đang chạy. Đầu tiên, mã được phân tích cú pháp và trình phân tích cú pháp nhận ra từ khóa "Const", sau đó mong đợi tên của Hằng sau đó và theo sau là dấu =. Trình phân tích cú pháp thực hiện tương tự với từ khóa trả về cũng như với () và {}

Nếu bất kỳ cú pháp nào sai ở bất kỳ đâu trong chương trình, trình phân tích cú pháp sẽ không thành công và quá trình thực thi của chúng ta sẽ không chuyển sang giai đoạn tiếp theo của công cụ đó là Cây cú pháp trừu tượng ( Hôm nay chúng ta đừng lo lắng về điều đó vì chúng ta có nguy cơ lạc đề. )

Khi Cây cú pháp trừu tượng đã được tạo, tôi nghĩ đây là nơi mà Op (và tôi) thường bị nhầm lẫn, đây là giai đoạn chúng tôi tiếp cận trình thông dịch. Bây giờ trình thông dịch có thể hiểu rõ chức năng đơn giản của chúng tôi được viết ở trên. Tuy nhiên, còn những thứ "tích hợp sẵn" mà Javascript đi kèm thì sao. e. g. Các phương thức toán chuỗi mảng, v.v. Vâng, với tư cách là nhà phát triển javascript, chúng tôi gọi các phương thức này và trên thực tế, tôi muốn xem đây là "Công việc của chúng tôi đã hoàn thành. "Chúng tôi đã gọi Phương pháp này. Bây giờ, cho dù đó là Phương thức tĩnh hay Phương thức thể hiện của một trong các đối tượng đã tạo của chúng tôi. g. một Mảng, tôi mong đợi kết quả chính xác khi mã của tôi được chạy mà ECMAScript đã hứa với tôi

Điều quan trọng cần lưu ý là một số Hàm/Phương thức này có thể được triển khai trong Javascript, nhưng hầu hết sẽ được triển khai trong mã Cấp thấp hơn, chẳng hạn như C/C++. Điều này tương tự như cách Python hoạt động khi nó được xây dựng trong các mô-đun được viết bằng C và được thực thi thông qua Phiên dịch Python. Quay lại Javascript - Cách các chức năng này được triển khai không quan trọng đối với bản thân tôi hoặc ECMAScript. Đó là sự lựa chọn của Trình duyệt về cách thức thực hiện việc này và một số lập trình viên cấp thấp rất tài năng. (Những lập trình viên C đó và những người được Trình duyệt thuê để triển khai chức năng của Công cụ để tuân thủ kết quả mong đợi của ECMAScripts). Bây giờ chúng tôi có tất cả các chức năng chúng tôi cần, trình thông dịch sẽ hoạt động và sau các quy trình khác (tùy thuộc vào công cụ nào được sử dụng) biến mã này thành Mã máy mà CPU có thể hiểu được (một lần nữa giải thích điều này sẽ lạc đề). Vì vậy, nếu chúng tôi đang đăng nhập vào bảng điều khiển, một định nghĩa về hàm/Phương thức nằm trong Công cụ JS mà chúng tôi không tự viết, đó là nơi chúng tôi lấy mã gốc. e. g

console.log(Math.random)

Đó là khi chúng ta nhận được

function random() {
[native code]
}

Ở trên, điều này được một nhà phát triển giỏi và có kinh nghiệm mô tả là "Mã gốc sẽ xuất hiện nếu đó là chức năng của môi trường lưu trữ" là Trình duyệt và lấy SetTimeout làm ví dụ. Có, đây cũng sẽ xuất hiện dưới dạng Mã gốc, đây là mã mà chúng tôi không tự viết, nhưng đây là Chức năng của Trình duyệt, không phải là một phần của chính Ngôn ngữ Javascript. Tất cả các chức năng / Phương thức không được viết bởi chúng tôi e. g. trong trình duyệt hoặc ở cấp độ thấp hơn sẽ xuất hiện dưới dạng “Mã gốc”

Nodejs

Tuy nhiên, bây giờ chúng ta có một môi trường thời gian chạy khác mà công cụ JS có thể phù hợp với. Một công nghệ mà mọi người đều biết với cái tên Nodejs. Trình duyệt của chúng tôi được thay thế bằng Api khác hữu ích hơn trên máy chủ. Bây giờ chúng ta có thể truy cập một hệ thống tệp trong môi trường thời gian chạy Node. Không có gì sai khi truy cập hệ thống tệp trên máy chủ của chúng tôi. Các API này phù hợp với máy chủ, tuy nhiên chúng tôi vẫn đang ở trong môi trường thời gian chạy, chúng tôi vẫn có trình thông dịch javascript, mã của chúng tôi vẫn được thông dịch, chúng tôi vẫn gọi các hàm cấp thấp hơn trong quá trình thông dịch, điều đó chỉ có nghĩa là chúng tôi đang ở trong môi trường thời gian chạy Nodejs chứ không phải

Các hàm dựng sẵn trong JavaScript là gì?

JavaScript có 5 chức năng được tích hợp sẵn trong ngôn ngữ. Chúng là eval, parseInt, parseFloat, escape và unescape. .
Đối với các ký tự chữ và số, ký tự tương tự (i. e. chức năng không có tác dụng)
Đối với ký tự khoảng trắng, dấu +

Điều gì không hoạt động trong JavaScript?

Ngoại lệ JavaScript "không phải là một hàm" xảy ra khi có nỗ lực gọi một giá trị từ một hàm, nhưng giá trị đó không thực sự là một hàm.

3 loại chức năng trong JavaScript là gì?

Có 3 cách viết hàm trong JavaScript. Khai báo hàm . Biểu thức hàm . Hàm mũi tên .

Những gì được xây dựng trong các chức năng?

Hàm tích hợp là hàm mà trình biên dịch tạo mã nội tuyến tại thời điểm biên dịch . Mỗi cuộc gọi đến một chức năng tích hợp sẽ loại bỏ một cuộc gọi thời gian chạy đến chức năng có cùng tên trong thư viện động.