Javascript object related operators.

Short about operators with objects in Javascript.

Using the "new" operator

  • To create new objects in Javascript, we use the "new" operator, which you probably have seen already.
  • New objects can be created either on the basis of one of the built-in objects such as Number, String, Object, Function, etc., or based on a function, which is also an object.

    Examples:
    <script type="text/javascript">
      // create number object
      var num = new Number(45);
      document.write("Number: "+num+"<br>");
    
      // create string object
      var str = new String("This is a string");
      document.write("String: "+str+"<br>");
    
      // create function object
      var mult = new Function("op1","op2"," return op1*op2;");
      // A more common way to create function objects:
      var multiply = function(op1,op2) {return op1*op2;};
      document.write("multiply(2,3): "+multiply(2,3)+"<br>");
    
     // create an object using a function object
      var multiply = function(op1,op2) {
        this.toString=function(){ return op1*op2;};
      };
      var obj=new multiply(2,4);
      document.write("As object: "+obj+"<br>");
    </script>

Using the "delete" operator

  • With the "delete" operator, you can delete the object properties, array element, or variable specified as its operand.
  • Variable defined in a function object with the 'var' keyword can not be removed.
  • Some properties, found in the embedded objects are immune and can not be removed.
  • "delete" operator returns true if it succeeds in deleting, otherwise the return value is false.
  • "delete" operator also returns true if the operand does not exist or operand is not a property, array element, or variable.

    Examples:
    <script type="text/javascript">
      // create an object
      var obj={height : 10, width : 20,
        area : function(){return this.height *this.width;}
      };
      document.write("area : "+obj.area()+"<br>");
      // delete a property in the object
      var status=delete(obj.width);
      document.write("delete return : "+status+"<br>");
      document.write("area : "+obj.area()+"<br>");
    
      // create an array
      var arr=[1,,1,121,17,118,19];
      document.write("arr[0] arr[3] arr[5] : "+arr[0]+" "+arr[3]+" "+arr[5]+"<br>");
      // delete the arr[3]
      status=delete(arr[3]);
      document.write("delete return : "+status+"<br>");
      document.write("arr[0] arr[3] arr[5] : "+arr[0]+" "+arr[3]+" "+arr[5]+"<br>");
    
      // delete a global variable
      test=10;
      document.write("test: "+test+"<br>");
      status=delete(test);
      document.write("delete return : "+status+"<br>");
      try {
        document.write("test: "+test+"<br>");
      }catch(e){
        document.write("ERROR: "+e+"<br>");
      }
    </script>

Using the "in" operator

  • The "in" operator can be used to test for the existence of a property in an object.
  • The name of the property is set as a string in front of the operator, which is followed by the object to be tested.

    Examples:
    <script type="text/javascript">
      var person={name : 10, age : undefined  };
      document.write("'name' in 'person' returns : "+ ("name" in person) +"<br>");
      // age is undefined, but exists
      document.write("'age' in 'person' returns : "+ ("age" in person) +"<br>");
    </script>

Using the "instanceof" operator

  • The "instanceof" operator expects a left-side operand that is an object and a right-side operand that is the name of an object with a constructor function.
  • Object with a constructor function may be a function object or built-in Javascript type, such as date, Number, String, Object, etc.
  • Since objects can inherit from other objects, an object will be an instance of all the objects in the inheritance chain. This means also that all objects is an instance of the Object object.
  • The operator evaluates to true if the left-side object is an instance of the right-side object (with a constructor function) and evaluates to false otherwise.

    Examples:
    <script type="text/javascript">
      var mon = ["January","June","May"];   // Create an array
      document.write("mon instanceof Array evaluates to: "
        + (mon instanceof Array) +"<br>");
      document.write("mon instanceof Object evaluates to: "
        + (mon instanceof Object) +"<br>");
      var Shape= function(point) {         // create a function
        this.point=point;
      }
      var sha= new Shape([34,45]);
      document.write("sha instanceof Shape evaluates to: "
        + (sha instanceof Shape) +"<br>");
      document.write("sha instanceof Function evaluates to: "
        + (sha instanceof Function) +"<br>"); // false
      document.write("sha instanceof Object evaluates to: "
        + (sha instanceof Object) +"<br>");
    
      document.write("Shape instanceof Function evaluates to: "
        + (Shape instanceof Function) +"<br>"); // false
    </script>

Using the "typeof" operator

  • If you want to know the data type of a variable or a value, you can use the special typeof operator.
  • This operator returns a string that represents the data type. The return values of using typeof can be one of the following—"number", "string", "boolean", "undefined", "object", or "function".
  • Remember that typeof "null is "object", while typeof "undefined is "undefined".
  • The type of any array is "object" because all arrays are objects, but type of any function is "function", even though functions are objects, too
  • The typeof operator is placed in front of its single operand, which can be of any type.

    Examples:
    <script type="text/javascript">
      var mon = ["January","June","May"];   // Create an array
      document.write("type of array: " + (typeof mon) +"<br>");
      var date = new Date()   // Create a date
      document.write("type of date: " + (typeof date) +"<br>");
      var num = 324;   // Create an array
      document.write("type of number: " + (typeof num) +"<br>");
      var str = "324";   // Create an array
      document.write("type of string: " + (typeof str) +"<br>");
      var func = function() {};
      document.write("type of function: " + (typeof func) +"<br>");
      var myRef = null;
      document.write("type of null: " + (typeof myRef) +"<br>");
      var myund = undefined;
      document.write("type of undefined: " + (typeof myund) +"<br>");
      var x;
      document.write("type of x: " + (typeof x) +"<br>");
    </script>

Special use of the "||" operator

  • Although the || operator is usually used only as a boolean OR operator between two boolean values ​​(an operand on its left side and an operand on its right side), it can also be used for other value types that basically is not boolean.
  • Any expression or operand that evaluates to null, NaN, 0, "" or undefined are considered to be a false boolean value. All other results of such evaluation is considered to be a true boolean value
  • The actual behavior of this operator is that it starts by evaluating its first operand, the expression on the left side. If the value of this expression evaluates to true, the operator returns the value of the left-side expression. Otherwise, it evaluates its second operand, the expression on the right, and returns the value of that expression.

    Example:
    <script type="text/javascript">
      var eval = function(obj) {
        var ret=obj || [3,4,5];
        return ret;
      }
      var mon = ["January","June","May"];   // Create an array
      document.write("function return with an argument : " + eval(mon) +"<br>");
      document.write("function return with NO argument : " + eval() +"<br>");
    </script>

Special use of the "&&" operator

  • Although the && operator is usually used only as a boolean AND operator between two boolean values ​​(an operand on its left side and an operand on its right side), it can also be used for other value types that basically is not boolean.
  • Any expression or operand that evaluates to null, NaN, 0, "" or undefined are considered to be a false boolean value. All other results of such evaluation is considered to be a true boolean value
  • The actual behavior of this operator is that it starts by evaluating its first operand, the expression on the left side. If the value of this expression evaluates to false, the operator returns the value of the left-side expression. Otherwise, it evaluates its second operand, the expression on the right, and returns the value of that expression.

    Example:
    <script type="text/javascript">
      var eval = function(obj) {
         var ret=obj && [3,4,5] ;
        return ret;
      }
      var mon = ["January","June","May"];   // Create an array
      document.write("function return with an argument : " + eval(mon) +"<br>");
      document.write("function return with NO argument : " + eval() +"<br>");
    </script>

© 2010 by Finnesand Data. All rights reserved.
This site aims to provide FREE programming training and technics.
Finnesand Data as site owner gives no warranty for the correctness in the pages or source codes.
The risk of using this web-site pages or any program codes from this website is entirely at the individual user.