Javascript学习二:运算符、语法

一、运算符

1.1 算术运算符

在这里插入图片描述

1.2 比较运算符

在这里插入图片描述
JavaScript 提供两种相等运算符:=====

简单说,它们的区别是相等运算符(== ) 比较两个值是否相等,严格相等运算符 ( ===)比较它们是否为“同一个值”。如果两个值不是同一类型,严格相等运算符(=== )直接返回false,而相等运算符(==)会将它们转换成同一个类型,再用严格相等运算符进行比较。
严格相等运算符有一个对应的“严格不相等运算符”(!==),它的算法就是先求严格相等运算符的结果,然后返回相反值。

1.3 布尔运算符

在这里插入图片描述

1.4 二进制运算符

在这里插入图片描述
位运算只对整数有效,遇到小数时,会将小数部分舍去,只保留整数部分。
右移运算符(>>)表示将一个数的二进制值向右移动指定的位数。如果是正数,头部全部补0;如果是负数,头部全部补1。右移运算符基本上相当于除以2的指定次方(最高位即符号位参与移动)。
头部补零的右移运算符(>>>)与右移运算符(>>)只有一个差别,就是一个数的二进制形式向右移动时,头部一律补零,而不考虑符号位。所以,该运算总是得到正值。对于正数,该运算的结果与右移运算符(>>)完全一致,区别主要在于负数。
位运算符可以用作设置对象属性的开关。

1.5 其他运算符

void运算符:
void运算符的作用是执行一个表达式,然后不返回任何值,或者说返回undefined。这个运算符的主要用途是浏览器的书签工具(Bookmarklet),以及在超级链接中插入代码防止网页跳转。

void 0 // undefined
void(0) // undefined

逗号运算符:
逗号运算符用于对两个表达式求值,并返回后一个表达式的值。逗号运算符的一个用途是,在返回一个值之前,进行一些辅助操作。上面代码中,先执行逗号之前的操作,然后返回逗号后面的值。

var value = (console.log('Hi!'), true);
// Hi!

value // true

二、语法

2.1 数据类型转换

JavaScript 是一种动态类型语言,变量没有类型限制,可以随时赋予任意值。

强制转换:
强制转换主要指使用Number()、String()和Boolean()三个函数,手动将各种类型的值,分别转换成数字、字符串或者布尔值。
Number():

  • 简单的规则是,Number方法的参数是对象时,将返回NaN,除非是包含单个数值的数组;
  • 基本上,只要有一个字符无法转成数值,整个字符串就会被转为NaN。
    String():
  • 数值:转为相应的字符串;
  • 字符串:转换后还是原来的值;
  • 布尔值:true转为字符串"true",false转为字符串"false";
  • undefined:转为字符串"undefined";
  • null:转为字符串"null";
  • String方法的参数如果是对象,返回一个类型字符串;如果是数组,返回该数组的字符串形式。
    Boolean():
    Boolean()函数可以将任意类型的值转为布尔值。
    它的转换规则相对简单:除了以下五个值的转换结果为false,其他的值全部为true。
    undefined
    null
    0(包含-0和+0)
    NaN
    ''(空字符串)

自动类型转换:
预期什么类型的值,就调用该类型的转换函数。

2.2 错误处理机制

Error 实例对象:
JavaScript 原生提供Error构造函数,所有抛出的错误都是这个构造函数的实例。
Error()构造函数接受一个参数,表示错误提示,可以从实例的message属性读到这个参数。抛出Error实例对象以后,整个程序就中断在发生错误的地方,不再往下执行。

Error实例对象是最一般的错误类型,在它的基础上,JavaScript 还定义了其他6种错误对象。也就是说,存在Error的6个派生对象。

  • SyntaxError对象是解析代码时发生的语法错误。
  • ReferenceError对象是引用一个不存在的变量时发生的错误。
  • RangeError对象是一个值超出有效范围时发生的错误。
  • TypeError对象是变量或参数不是预期类型时发生的错误。
  • URIError对象是 URI 相关函数的参数不正确时抛出的错误,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数。
  • eval函数没有被正确执行时,会抛出EvalError错误。
  • 除了 JavaScript 原生提供的七种错误对象,还可以定义自己的错误对象。
function UserError(message) {
  this.message = message || '默认信息';
  this.name = 'UserError';
}

UserError.prototype = new Error();
UserError.prototype.constructor = UserError;

throw语句:
throw语句的作用是手动中断程序执行,抛出一个错误。
自定义throw:

function UserError(message) {
  this.message = message || '默认信息';
  this.name = 'UserError';
}

throw new UserError('出错了!');

try catch结构:
一旦发生错误,程序就中止执行了。JavaScript 提供了try…catch结构,允许对错误进行处理,选择是否往下执行。
catch接收try抛出的值。
finally代码块:
try…catch结构允许在最后添加一个finally代码块,表示不管是否出现错误,都必需在最后运行的语句。

表示区块起首的大括号,不要另起一行。

2.3 console与控制台

console的常见用途有两个:
调试程序,显示网页代码运行时的错误信息。
提供了一个命令行接口,用来与网页代码互动。

  • console.log方法用于在控制台输出信息。它可以接受一个或多个参数,将它们连接起来输出。
  • console.info是console.log方法的别名,用法完全一样。只不过console.info方法会在输出信息的前面,加上一个蓝色图标。
  • console.debug方法与console.log方法类似,会在控制台输出调试信息。但是,默认情况下,console.debug输出的信息不会显示,只有在打开显示级别在verbose的情况下,才会显示。
  • warn方法和error方法也是在控制台输出信息,它们与log方法的不同之处在于,warn方法输出信息时,在最前面加一个黄色三角,表示警告;error方法输出信息时,在最前面加一个红色的叉,表示出错。同时,还会高亮显示输出文字和错误发生的堆栈。其他方面都一样。
  • 对于某些复合类型的数据,console.table方法可以将其转为表格显示。
  • count方法用于计数,输出它被调用了多少次。
  • console.assert方法主要用于程序运行过程中,进行条件判断,如果不满足条件,就显示一个错误,但不会中断程序执行。这样就相当于提示用户,内部状态不正确。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值