JavaScript Advanced Tutorial Learning note I, variables and data types

Source: Internet
Author: User
Tags bitwise bitwise operators

The core language features of JavaScript are defined in ECMA-262 in the form of a pseudo-language called ECMAScript.

One, variable and data type 1. Variable

Javasript is a weakly typed language that can define any type of variable through VAR, while the same variable can be assigned to different types.

JavaScript can omit semicolons at the end of a statement, and JS will automatically add semicolons, but preferably with a semicolon : 1. Reduce error 2. Easy Compression 3. Improved performance

var msg = ' mdzz ';   // Stringmsg = 1024x768;         //  Number

varDeclaring variables, function scopes

2. Data type

JavaScript has a total of 5 basic data types, which typeof can be viewed by the variable's data type. typeof(variable/numeric literal) returns the corresponding data type string

1. Undefined

There is only one value, and the undefined declaration does not have a variable initialized, and the default value is undefined . You can also assign values to variables undefined .

var // x equals var msg = undefined typeof (msg)>> "undefined"

typeof(non-declared variable) also returns "undefined"

2. Null

There is also only one value, for null , to typeof(null) return ‘object‘ .

3. Boolean

Two values, true and a false . All other types of values can be converted to or from a Boolean (variable) true false . Conversion rules:

Data type true false
String Non-empty string Empty string ( ‘‘ )
Number Non-0 value 0AndNaN
Object Any object null
Undefined undefined

At some point the variable is automatically converted to a Boolean, such as if (variable) equivalent to if(Boolean (variable) )

4. Number

can represent integers or floating-point numbers. 0 begins with octal, and 0x starts with hexadecimal.

Special values:

    • Number.MIN_VALUE(Minimum value
    • Number.MAX_VALUE(Maximum value
    • Infinity(Infinity, over the JS data range, can be Number.POSITIVE_INFINITY obtained by
    • -Infinity(Negative infinity,Number.NEGATIVE_INFINITY
    • Number.MAX_SAFE_INTEGER(Maximum integer
    • Number.MIN_SAFE_INTEGER(Minimum integer
    • NaN

Any NaN operations involved are returned NaN , such asNan / 10

NaNNot equal to any value, including itself,NaN == NaN // false

isNaN()Used to determine whether a variable is a numeric value

IsNaN (NaN)      //  trueIsNaN (' ten ')     //  false can be converted to a numeric value IsNaN (true)     //  falseIsNaN (' true ')   // true
Numeric conversions:

Number(), parseInt() , parseFloat() .

Number()Conversion rules:

    • trueand false will be converted to 1 and0
    • nullReturn0
    • undefinedReturnNaN
    • The string ignores the leading 0, hexadecimal can be converted, the empty string is 0, and the other illegal string is converted to NaN .
    • Object, invokes the valueOf() method, and then invokes the undefined string to toString() convert.

parseInt()Conversion rules:

    • Ignoring the previous whitespace encounters an illegal character conversion end
      parseint (' 123blue ');    // 123parseint (");           // NaNparseint (' 0xA ');        // 10 (hex)parseint ('   22.5 ');    // parseint (22.5);         // parseint (' zzz ');        // NaN
    • Octal (0 start number) Sometimes the conversion rules are not uniform.
    • parseInt(number, radix)Converts to the specified binary.

parseFloat()Only decimal is converted.

5. String

Single quotation mark ( ) or double quotation mark ( " ) wrap. There is no difference between the two ways.

Escape characters:

    • \nLine break
    • \tTab
    • \bSpace
    • \rEnter
    • \\Slash Slash
    • \‘Single quotation marks
    • \"Double quotes

str.length Get string length

The string in the ECMAScript is immutable. string concatenation will result in a new string.

toString()Method: In null addition undefined to the value, there are methods for other data toString() . The string returns a copy.

> 0x23. ToString ()< "+" > ' 0x23 '. ToString ()< "0x23"
6. Object

JS can be used var o = new Object() to create objects.

ObjectEach instance has the following properties and methods:

    • constructor(): constructors
    • hasOwnProperty(propertyName): Used to check whether a property exists for the current object. Which propertyName is a string.
    • isPrototypeOf(Object): Used to check if an incoming object is a prototype of another object.
    • propertyIsEnumerable(propertyName): Used to check whether a given property can be enumerated with for-in. Which propertyName is a string.
    • toString(): Returns the string of the object.
    • valueOf(): Returns the string, numeric, or Boolean representation of an object.
Two, operator 1. Unary operators
  • increment decrement operator   + + , --, for integers, using the same method as the C language, Java, and so on. However, JS can be used not only for integers, but also for floating-point numbers. At the same time, for other types of variables, it is converted to number and then the operation, and illegal will return NaN .
     var  o = {valueOf:  function   () { return  -1;    }}  var  i = o--; //  
  • Unary plus and minus operators are the same for numbers, + - like normal operations symbols, and can be quickly converted to types for other types Number .
    var o = {    function() {         return -1;    }} var i =-O;    // I was equal to 1, O don ' t change
2. Bitwise operators
    • Bitwise NON ( ~ ): Negative value of the operand minus one.
    • Bitwise AND ( & )
    • Bitwise OR ( | )
    • Bitwise XOR OR ( ^ )
    • Move left ( << )
    • Arithmetic right Shift ( >> ): Leftmost fill sign bit
    • Logical right Shift ( >>> ): the leftmost 0.
3. Boolean operators
  • Logical non ( ! ): Returns the inverse of the Boolean value. !!the effect can be achieved by two reverse () Boolean() .
  • Logic and ( && ): short-circuit operation. If the Boolean value of the first operand is false, the first operand is returned, Note: The operand itself is returned, not the corresponding Boolean value! if the Boolean value corresponding to the first operand is true, the second operand is returned.
    if NULL ) {    obj.dosomething ();} // The above code can be simplified into the following code , obj && obj.dosomething ();
  • Logic or ( || ): As with logic, a short-circuit operation.
    var obj; if NULL {    =else  {    new  Object ();} // the code above can be simplified into the following code New Object ();
4. Multiplicative operators

If a multiplicative operation is performed on a non-numeric operand, it is automatically converted to a number.

    • Multiplication ( * )

Over the data range returned Infinity or -Infinity ;

There is an operand that is NaN returned NaN ;

InfinityAnd 0 multiplied, returned NaN ;

InfinityAnd not 0 values, Infinity multiplied, returned Infinity ;

    • Division ( / )

  x/NaN,,, NaN/x Infinity/Infinity x/0 return NaN .

    • Modulo ( % )

x/Infinity, x/0 =NaN

x(有限数值)/Infinity= x

5. Additive operators
    • Addition

Numeric operations or string operations can be performed.

If one of the operands is a string, the other operand is converted to a string and then concatenated.

    • Subtraction

Non-numeric operands are converted to corresponding values.

6. Relational operators
    • Less than ( < ), greater than (), > less than or equal to () <= , greater than or equal to ( >= )
    • A non-numeric operand is converted to a numeric value compared to a numeric value.
    • The strings are compared by dictionary order.
7. Equality operators
    • Equal ( == ) and unequal ( != )
    • The two operands do a forced type conversion before comparing their equality. Different data type conversion rules:
      1. Boolean, 0 or1
      2. StringComparison Number : StringNumber
      3. ObjectComparing other types, the object takes valueOf() the value returned by the method
      4. null == undefined // true
      5. null == anything // false
      6. null != anything // true
      7. If the two operands are objects, they are equal when they point to the same object.
    • Congruent ( === ) and not congruent ( !== )
      1. If the two operand data types are not returned equal false , the type conversion is not performed.
8. Conditional operator ( ? :) 9. Assignment operator ( =) 10. Comma operator ( ,): Returns the last item III, statement

Even if there is only one line of code, it is best to { } enclose it.

  1. ifStatement

  2. do-while()Statement

  3. whileStatement

  4. forStatement

    The variables defined in the For statement are still valid even after the statement ends, because VAR defines the variable as the function scope.

    var count = ten;  for (var i = 0; i < count; i++) {    // do something ... }alert (i);    // Ten
  5. for-inStatement

    The output sequence is variable. Before looping, you should verify that the value of the object is not null or undefined .

     for inch expression) {    statement}
  6. labelStatement

    label: statement

    breakthe specified or continue location. (same as in Java.)

  7. breakand continue statements

  8. withStatement

    withThe purpose of the statement is to set the scope of the code to a specific object. It is not allowed in strict mode.

    Grammar:with(expression) statement;

    var qs = location.search.substring (1); var hostName = location.hostname; var url = location.href; // simplify into the following code  with (location) {    var qs = search.substring (1);     var hostName = hostName;     var url = href;}
  9. switchStatement

    Switch (expression) {    case  value1:statement        break;      Case value2:statement          Break ;      Case value3:statement          Break ;     // Other case     default : statement}

    Where expression can be of any data type. It needs to be judged.expression === value。

Iv. functions

Basic syntax for a function:

function functionname (arg0, arg1, ...,     ArgN) {//  function declaration      //  function call

when you call a function in ECMAScript, the arguments can be different from the number of arguments when the function is declared. The parameters in the ECMAScript are internally represented by an array, which can be accessed by objects within the function body arguments .

argumentsis not Array an instance, but can be arguments[index] obtained by taking any one of the elements. The arguments.length number of arguments can be obtained by means of a.

We can implement overloading by judging the number of parameters. But there is no function overload in JavaScript itself, and if you define multiple functions with the same name, only the last function will take effect.

function Doadd (NUM1, num2) {    if (arguments.length = = 1)        {+ ten)    ; Else if (Arguments.length = = 2) {        alert (arguments[//  arguments[0] is equals to NUM1     }}

argumentsand named parameters are synchronous, but the parameters that are not passed can not be changed by changing arguments . Remember that it arguments is not an array.

function Doadd (NUM1, num2, num3) {    //  2    //  1 2 undefined 1 2 undefined
   NUM1 = 3; ARGUMENTS[1] = 4; ARGUMENTS[2] = 5;     // 2    // 3 4 undefined 3 4 5 }doadd (1, 2);

JavaScript Advanced Tutorial Learning note I, variables and data types

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.