Home Web Front-end JS Tutorial JS Advanced Notes_javascript skills

JS Advanced Notes_javascript skills

May 16, 2016 pm 06:04 PM

JS Advanced
1. JS Data Types
1. Basic Types
JS has 5 basic types, which are:
1) Undefined. It has only one value: undefined. If a variable is defined but no value is assigned to it, then the system will assign the variable a value of undefined by default.
2) Null. It also has only one value: null. It is a reference type. When a variable that is intended to save an object does not point to an object due to various reasons, the variable can be assigned a value of null, which is usually done.
3) Number. Numeric type is a collection of integers and floating point types in C#. Its specific type depends on the situation in which it is assigned. Generally speaking, it is the type of the assigned value. Also note that var num = 1.0; at this time, num is an integer type, and it is a floating point type only when there is an exact value that is not 0 after the decimal point. There are some other knowledge points about the Number type, such as: NaN means that the value is not a number. isNaN() can determine that the incoming value is of Number type; parseInt() can convert the incoming parameter into a numeric type. If it contains If the string is a non-numeric type, the string will be automatically removed. The return value of parseInt("123blue") is 123, and the blue part of the string is ignored. Therefore, the parseInt() method can be understood as trying to convert the incoming parameters into integers. type, if it cannot be converted, the parts that cannot be converted will be ignored. The parseFloat() method is similar to the parseInt() method.
4)Boolean. The Boolean type, similar to the bool type in C#, has two values: true and false, but there is no corresponding relationship with numbers like 0 corresponding to False and 1 corresponding to true in C#.
5)String. The string type stores a character sequence consisting of 0 to 16-bit UNICODE codes.
2. Complex types
1) Object type. It is the top-level "parent class" of JS (because there is no concept of class in JS, and it is just for the convenience of understanding). It is a collection of data and methods (functions), but it does not have the traditional object-oriented language Supported classes and interfaces. The Object type is essentially an unordered list of key-value pairs, similar to a collection, in json format. It contains 7 methods, namely:
constructor() Constructor?
hasOwnProperty(propertyName) Check whether the property is in the current object
isPrototypeOf(object) Check whether the object is the prototype of the object
propertyIsEnumerable(propertyName) Check whether the property can be looped using for-in
toString( )
valueOf()
There are many ways to create Object:
By new keyword: var s = new Object(); s.name="james"; s.age=27;
Simple definition through JS: var s = {}; s.name="james"; s.age=27;
Object literal notation: var s = {"name":"james"," age":"27"};PS: The key of json format data does not need to be enclosed in double quotes. If the value is not a string, it does not need to be enclosed in double quotes. However, it is recommended that both key and value should be enclosed in double quotes. Avoid unnecessary trouble.
Method to access the properties of Object object:
s.name Click it directly.
s["name"]; The advantage of using square brackets (similar to indexers) is that properties can be dynamically accessed through variables: var proName="name"; alert(s[proName]);
2) Array type. It is an ordered list of data
. It is different from other arrays:
Array elements can be of any type, and the element types of the same array can also be different, which is equivalent to List in C#.
The length can be Arbitrarily change the length attribute of the
array to read and write (you can use this to delete array elements)
The stack method of the array is last in first out
push() Add to it
pop() Take out from the stack head , the number of elements in the array will change after being taken out
The queue method of the array is first in, first out
shift() Take out from the end of the queue
unshift() Add in from the end of the queue
Sort
sort() Arranges the data in the array in a certain order. The parameter can be passed to an anonymous method (similar to an interface)
reverse() reverses the arrangement
Connects the array
concat() Example: var colors=["a","b"];var newcolor=colors.concat("yellow",["c","d"]); As a result, colors has 5 elements. If an array is passed in to the concate method, the array will be split and the elements will be added to the target array. If you pass in json format data, a json data will be treated as an element and added to the array.
3) Function type. The function is an object, and the function name is a pointer.
declaration methods (3 ways):
function sum(x,y){return x y;}
var sum=function(x,y){return x y;} //Function expression
var sum=new Function("x","y","return x y;");//Object creation, not recommended (parsed twice)
Function type has no overloading. The Function type is essentially a data type. Like other types, when assigned multiple times, the next assignment will overwrite (replace) the previous assignment. Multiple functions with the same name actually assign values ​​to the same function object. The latter assignment will overwrite the previous assignment, so the last function definition will be executed.
Before talking about the properties of Function, you need to understand the execution environment and scope of the JS code as well as some other knowledge points:
a) Execution environment: It is the parent environment where the current function (method) is located. For example, the execution environment of a function executed under window is window.The real global execution environment is Global, but most browsers do not expose code access and only access it indirectly through the window.
b) Statements such as if do not use block scope. The scope of JS is different from that of C#. Codes enclosed in braces such as if and for cannot form a block scope.
c) When using var to declare a variable, it will be added to the nearest available environment. If var is not used, it will be added to the parent environment. This explains why a variable defined without var is a global variable.
d) The declaration statement will be executed first, no matter where you put it. Although JS code is executed sequentially from top to bottom, when encountering a declared statement, the compiler will execute the declared statement first to ensure that no error will be reported due to encountering undeclared variables during the execution of other statements.
e) Garbage collection. Setting a variable that holds an object to null is equivalent to cutting off the relationship between the variable (stack) and the reference value (heap). The garbage collection station will automatically recycle the internal attributes of the
Function:
arguments
He is an array that saves the parameters passed in.
callee is a pointer that saves the function object that owns this arguments object, which is the heap address of this function. When the function needs to call itself, callee can be used without the need for its own function name, thus reducing the degree of coupling.
this
points to the execution environment of the current function, which is the scope in which the function is executed.
Properties and methods of the function object
length
The number of named parameters defined by the function
Function name.length
prototype (prototype)
Save the real location of all their instance methods
apply([Scope to be changed])
Changing the scope of the function object is Change the value of this
Sample code

Copy code The code is as follows:

function sum( x, y) {
alert(this);
return x y;
}
//window.sum(1,2);
function callS() {
callS. callSum1(1, 2);
}
callS.callSum1 = function (x, y) {
alert(this);
var s = sum.apply(this, arguments);
//sum(1, 2);
return s;
}
callS();

The call() method is similar to the apply() method
above The two methods are not inherited and can expand the scope of the function. The biggest advantage of this is that the object and method do not need to have any coupling relationship. The first parameter passed in by both is the scope to be changed, the second parameter passed in by apply is a parameter array, and in call is passed in each named parameter.
2. Value types and reference types
Having talked about so many basic types (all value types except null) and complex types (basically all reference types), we need to understand why language designers design values Types and reference types. What's the difference between the two?
1. The value type content length is fixed, and the storage range of the reference type content length is not fixed, and can store data of variable length;
2. The value type can only store values, such as integers and strings. wait. The reference type can store the heap address of the object, allowing multiple variables to point to the same object;
3. The most important point is that the reference type can alleviate the storage pressure of the stack (value types are stored in the stack).
4. In JS syntax, basic data types cannot add attributes dynamically, while reference data types can add attributes dynamically.
3. Keywords for detecting types
1.typeof
Judge the type of basic type and return true or false
2.instanceof
Judge the type of complex (reference) type and return true or false
If you use it to determine the basic type, it will always return false
4. eval() method
The eval() method is quite powerful, it is equivalent to a parser. It only accepts one parameter, which is the JS code string to be executed. When the parser finds eval(), it will parse the parameters in eval() and insert them into the location where eval is executed. The effect is equivalent to writing JS code directly at the corresponding location.
5. Create objects
1) Simple factory pattern
2) Constructor pattern. Each instance includes all methods, which wastes memory.
3) Prototype mode. Save the method in the prototype so that all instances can call the method without having to save the method in each instance
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How do I create and publish my own JavaScript libraries? How do I create and publish my own JavaScript libraries? Mar 18, 2025 pm 03:12 PM

Article discusses creating, publishing, and maintaining JavaScript libraries, focusing on planning, development, testing, documentation, and promotion strategies.

How do I optimize JavaScript code for performance in the browser? How do I optimize JavaScript code for performance in the browser? Mar 18, 2025 pm 03:14 PM

The article discusses strategies for optimizing JavaScript performance in browsers, focusing on reducing execution time and minimizing impact on page load speed.

What should I do if I encounter garbled code printing for front-end thermal paper receipts? What should I do if I encounter garbled code printing for front-end thermal paper receipts? Apr 04, 2025 pm 02:42 PM

Frequently Asked Questions and Solutions for Front-end Thermal Paper Ticket Printing In Front-end Development, Ticket Printing is a common requirement. However, many developers are implementing...

How do I debug JavaScript code effectively using browser developer tools? How do I debug JavaScript code effectively using browser developer tools? Mar 18, 2025 pm 03:16 PM

The article discusses effective JavaScript debugging using browser developer tools, focusing on setting breakpoints, using the console, and analyzing performance.

How do I use Java's collections framework effectively? How do I use Java's collections framework effectively? Mar 13, 2025 pm 12:28 PM

This article explores effective use of Java's Collections Framework. It emphasizes choosing appropriate collections (List, Set, Map, Queue) based on data structure, performance needs, and thread safety. Optimizing collection usage through efficient

How do I use source maps to debug minified JavaScript code? How do I use source maps to debug minified JavaScript code? Mar 18, 2025 pm 03:17 PM

The article explains how to use source maps to debug minified JavaScript by mapping it back to the original code. It discusses enabling source maps, setting breakpoints, and using tools like Chrome DevTools and Webpack.

Getting Started With Chart.js: Pie, Doughnut, and Bubble Charts Getting Started With Chart.js: Pie, Doughnut, and Bubble Charts Mar 15, 2025 am 09:19 AM

This tutorial will explain how to create pie, ring, and bubble charts using Chart.js. Previously, we have learned four chart types of Chart.js: line chart and bar chart (tutorial 2), as well as radar chart and polar region chart (tutorial 3). Create pie and ring charts Pie charts and ring charts are ideal for showing the proportions of a whole that is divided into different parts. For example, a pie chart can be used to show the percentage of male lions, female lions and young lions in a safari, or the percentage of votes that different candidates receive in the election. Pie charts are only suitable for comparing single parameters or datasets. It should be noted that the pie chart cannot draw entities with zero value because the angle of the fan in the pie chart depends on the numerical size of the data point. This means any entity with zero proportion

Who gets paid more Python or JavaScript? Who gets paid more Python or JavaScript? Apr 04, 2025 am 12:09 AM

There is no absolute salary for Python and JavaScript developers, depending on skills and industry needs. 1. Python may be paid more in data science and machine learning. 2. JavaScript has great demand in front-end and full-stack development, and its salary is also considerable. 3. Influencing factors include experience, geographical location, company size and specific skills.

See all articles