JavaScript基本概念(操作符)

一元操作符

一元操作符在处理所有的非数值时,相当于将该值经过Number()转换成数值。

位操作符

    1. 负数在计算机上以二进制补码的形式储存,补码等于原码的反码加1,ECMAScript在以二进制字符串形式输出一个负数时,我们看到的只是这个负数绝对值的二进制码前面加上一个符号(而不是输出32位二进制)如:

      var num = -18;
      alert(num.toString(2));  // "-10010"
      

        

    2. 对特殊的NaN和Infinity值应用位操作符时,这两个值都会被当成0来处理。
    3. 进行有符号的右移(>>)操作时,其左边以符号位的值来填充空位,进行无符号的右移(>>>)操作时,以0来填充空位.

布尔操作符

逻辑非

   对非布尔类型的值进行逻辑非操作时,会先使用Boolean()将值转换为布尔类型。

逻辑与

    1. 属于短路操作,且并不一定返回布尔类型。
    2. 如果第一个操作数用Boolean()函数可以转换为true时,返回第二个操作数。
    3. 如果第一个操作数是false,null,NaN,undefined时,返回第一个操作数。

逻辑或

    1. 原理跟逻辑与差不多。
    2. 我们可以利用下面的例子来避免为变量赋null或undefined值,如:
var myObject = preferredObject || backupObject

  其中若第一个变量存在则优先赋予myObject第一个变量,不然赋予第二个变量

乘性操作符

注:如果参与乘性计算的某个操作符不是数值时,后台会先使用Number()转型函数将其转换为数值。

乘法

    1. 如果有一个操作数是NaN,则结果是NaN;
    2. 如果是Infinity与0相乘,则结果是NaN;
    3. 如果Infinity与非0数值相乘,则结果是Infinity或-Infinity;
    4. 如果是Infinity与Infinity相乘,则结果是Infinity。

除法

    1. 如果有一个操作数是NaN,则结果是NaN;
    2. 如果是Infinity被Infinity除,则结果是NaN;
    3. 如果是零被零除,则结果是NaN;
    4. 如果是非零的有限数被零除,则结果是Infinity或-Infinity;
    5. 如果是Infinity被任何非零数值除,则结果是Infinity或-Infinity。

求模

    1. 如果被除数是无穷大值而除数是有限大值,则结果是NaN;
    2. 如果被除数是有限大的数值而除数是零,则结果是NaN;
    3. 如果是Infinity被Infinity除,则结果是NaN;
    4. 如果被除数是有限大的数值而除数是无穷大的数值,则结果是被除数;
    5. 如果被除数是0,则结果是0。

加性操作符

加法

如果有一个操作数是字符串,则将另一个操作数使用String()转型函数转换为字符串,然后将两个字符串拼接起来;

减法

如果操作数是非数值,后台调用Number()转型函数先将其转换为数值在进行运算。

关系操作符

  1. 如果两个操作数是数值,则执行数值比较;
  2. 如果两个操作数都是字符串,则比较两个字符串对应的字符编码值;
  3. 如果一个操作数是数值,则后台将使用Number()函数将其转换为数值再比较;
  4. 如果一个操作数是对象,则调用对象的valueOf()方法,用得到的结果按照前面的规则进行比较,如果对象没有valueOf方法,则调用toString()方法,并用得到的结果进行比较。
  5. NaN作为操作数时,NaN < 3 和 NaN >= 3 皆返回false。

相等操作符

注:相等和不相等---先转换再比较,全等和不全等---仅比较而不转换

相等和不相等

    1. null和undefined是相等的;
    2. 如果只有一个操作数是数值,则将另一个操作数转换为数值再比较;
    3. 如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true。

条件操作符

如下所示:error这个变量未定义,但是并未抛出错误。

abc = true ? 12 : error
时间: 2024-10-10 20:00:10

JavaScript基本概念(操作符)的相关文章

js基础--javascript基础概念之语法

掌握一门语言 必须先掌握它的语法! javascript 的语法和C.Java.Perl 的语法有些相似.但是比它们更加宽松. javascript 中的一切都是严格区分大小写的.例如变量: demo 和 Demo 两个变量是完全不同的. javascript 标示符,所谓标示符 是指 变量.函数.属性 的名字或函数的参数.标示符的格式是按照以下规则组合的一个或多个字符. 1.第一个字符必须是字母,下划线,或 $ 符号. 2.其他字符可以是字母.下划线.$ . 或数字. 注意 不能把关键字 保留

js基础--javascript基础概念之数组

js基础--javascript基础概念之数组 在ECMAScript 中 ,数组是很常用的数据类型,js中的数组和其他很多语言的数组有明显的区别.js的数组可以保持任何类型的数值,一个数组中可以保存着多个不同类型的数值.js数组大小(长度)是可以调整的.可以随着数据的添加自动增长数组长度. 创建数组: 一.数组字面量 数组字面量由一对包含数组项的方括号[]表示. var array = [ 'kin', 'cheong', 'change', 'hello', 'haha', 'hi' ];

javascript中的操作符详解1

好久没有写点什么了,根据博主的技术,仍然写一点javascript新手入门文章,接下来我们一起来探讨javascript的操作符. 一.前言 javascript中有许多操作符,但是许多初学者并不理解或曲解他们的用途,本章将会带领初学者们一起来学习一下javascript的几个常用操作符:typeof.in.delete.new. 二.学习目标 1. 深入了解javascript操作符:typeof.in.delete.new的功能及用法. 2. 剖析根本,掌握这些常用的操作符的运用场景,活学活

js基础--javascript基础概念之数组(二)

js基础--javascript基础概念之数组 数组栈方法 数组可以像栈一样.栈是一种先进后出的数据结构,最先添加的数据最后一个出来.栈方法添加数据也称为 推入  移除数据称为 弹出. js为数值栈方法提供了 push()   和  pop() ;  两个方法. push() push() 方法接受参数就是你要添加进入到数组的值.push()  方法会将他们逐一添加到数组的末尾  数组的length属性会跟着更新数据. *push(多个数组元素值) 返回的修改后的数组长度 var array =

js基础--javascript基础概念之语句(二)

js基础--javascript基础概念之语句(二)label,break,continue.. break .  continue 语句. break  continue 语句用于在循环中精确控制代码的执行,其中break语句会立即退出循环,执行循环后面的语句. continue 则退出循环后返回到再次进入循环中. 如: var num = 0; for(var i = 0; i<=100; i++){ if(i >= 10){ break; } num = i; } alert(num);

js基础--javascript基础概念之变量与作用域

js基础--javascript基础概念之变量.作用域 javascript按照ECMA-262 的定义,变量与其他语言变量有所不同.js变量时松散的,不需要事先定义变量类型的.这使得他只是一个保存特定值的一个名称.变量与其数据类型可以在脚本的生命周期内改变. 还有明白几点: JavaScript的变量作用域是基于其特有的作用域链的,JavaScript没有块级作用域. 基本类型和引用类型的值 ECMAScript 的变量有两种不同的数据类型:分别是 基本数据类型值 和 引用类型值 : 基本数据

javascript 中 in操作符

in in 操作检查对象中是否有名为 property 的属性.也可以检查对象的原型,以便知道该属性是否为原型链的一部分. 对于一般的对象属性需要用字符串指定属性的名称 ? 1 2 3 var mycar = {make: "Honda", model: "Accord", year: 1998}; "make" in mycar  // returns true "model" in mycar // returns tru

Javascript基本概念梳理

javascript里的数据类型: 原始类型:数字,字符串,布尔值.(原始值:null,undefined) 对象类型:键值对,数组,function,全局对象(MATH,JSON) 包装对象的概念: 字符串"aaa".len 字符串并不是对象,但是却可以调用它的属性,说明这只是一个临时对象,内部用new String()来创建的临时的. 原始类型是永远不可变的,所以可以比较他们的值,但是对象类型是可变的,不能比较他们的值. Javascript原型和继承: Javascript里每个

js基础--javascript基础概念之语句

js基础--javascript基础概念之语句 ECMA-262定义了一组语句(流程控制语句) 语句定义了EMCAScript 语法. 常见的if语句. 语法: if(condition) statement1 else statement2 其中.Condition 可以是任意表达式.而且对这个表达式求值的结果不一定是布尔值.因为script 会自动调用boolean 将值转换为布尔值.如果condition 的值是 true .则执行statement1 语句  否则  执行 stateme

JavaScript 的in 操作符 (“如何判断某值是否数组中的元素”?)

在编写JavaScript时,遇到一个常见的问题"如何判断某值是否数组中的元素"?这让我想起了PHP中的in_array()函数和Python中in 操作符.但JavaScript似乎没有内置类似的函数,而其in 操作符的作用也有点不同.通过查询相关的资料,我发现JavaScript的in 操作符还是挺有用的. 一.问题让我想到in 操作符,正是因为这样一个问题:"如何判断某值是否数组中的元素"?在PHP中,您可能会这样来处理: $os = array("