JavaScript 温故知新 02

操作符

一元操作符

——递增&递减操作符

 var a = 12; ++a; // a = a + 1, 此刻 a 值为 13

--a; // a = a - 1, 此刻 a 值为 12

 //以上都是语句被求值以前改变——副效应 

前置执行前改变
var b = 12;
b++; // b 本身此刻 还是 12 

var n1 = 3;
var n2 = 4;
var n3 = n1-- + n2; // n3 = 7, 之后, n1 = 2
var n4 = n1 + n2; // n4 = 6 

// 

递增递减可以应用到其他类型,规则

一元加操作符:

一元减操作符:

主要用于表示负数——

位操作符

——按照内存中表示数值的位来操作数值

——ECMAScript all 数值 IEEE-754    64 位格式存储

——BUT 位操作符 并不直接操作 64 位的值

——先将 64 位的值转换为 32 位整数, then 执行操作, last 将结果重新转换为 64 位

!!!有符号整数:第 32 位 符号:0 正数 1 负数 前 31 位整数值

!!!负数二进制补码 格式存储

——》求补码:1. 取绝对值二进制码   2. 求反码        3. 得到二进制反码 再 加 1

当然此过程是透明的~~~

!!!副效应!!!

——特殊的 NaN 和 Infinity 应用位操作时, both 被当做 0 处理!!!

——按位非(NOT) : ~

—— return 数值 反码

a = -a -1;// 相同结果,BUT ~ 在数值表示的最底层执行操作,速度就会更快!!!

——》按位非操作本质——操作数负值减1

按位与(AND) &

—— 2 个操作数  both 1 return 1 else  return 0

按位或(OR) |

—— 2 个操作数 both 0 return 0 else return 1

按位亦或(XOR) ^

—— 2 个操作数 same return 0 different return 1

左移 <<

—— 将数值所有位向左移动指定位数

左移 << 5  原来数值的右侧多出 5 位空格 以 0 填充

!!!<< 不会影响符号位

有符号右移 >>

——向右移动、保留符号位

符号位填充所有空位

无符号右移 >>>

—— 将所有 32 位 都向右移动

正数同 >>

负数!!!无符号右移以 0 填充空位

—— 无符号右移操作符 会将负数的二进制码 当成正数的二进制码QAQ

—— cause 负数以其绝对值的二进制补码形式表示, 

—— then 无符号右移后的结果就Max MAX !!!

原文地址:https://www.cnblogs.com/haixiaomei/p/a2.html

时间: 2024-11-10 21:28:41

JavaScript 温故知新 02的相关文章

【JavaScript】02.基础语法学习

[JavaScript]02.基础语法学习 引言: 老农认为(老农是我对自己的昵称),学习任何一门计算机程序语言都要先从它的语法知识开始.计算机程序语言由一堆预定义的字符和书写这些字符的规则组成.这些预定义的字符在语言里面叫做关键字或者保留字,书写这些字符的规则叫做语法. 计算机语言(Computer Lnguage),是指用于人与计算机之间通讯的语言.语言分为自然语言与人工语言两大类.自然语言是人类在自身发展的过程中形成的语言,是人与人之间传递信息的媒介.人工语言指的是人们为了某种目的而自行设

复习 - JavaScript - 阶段02

第一天: [01] JS是基于事件驱动型的编程语言,当发生某个特殊事件的时候执行一段特殊程序: 每一个JS事件都会对应一个事件句柄,事件句柄的名称是: on+事件名,例如click是鼠标单击事件,onclick是鼠标单击事件句柄: 我们可以选择在事件句柄后面"注册"JS代码,当事件被触发时,注册在事件句柄后的JS代码会被自动执行. [02] JS是解释性语言,边解释,边执行,并且具有阻断性:预处理加执行二者合一就叫做"解释". [03] 变量是程序中存储数据的容器:

javascript总结02

1 如何打开和关闭一个新的窗口? 2 Window对象的哪个属性能返回上一个浏览页面? 3 一次或多次执行一段程序的函数是什么? 定时函数 4 如何查找并访问节点? 5 给表格新增行和单元格的方法分别是? (1) Table对象的方法 (2) TableRow对象的属性和方法 6 JavaScript 中的常用四个内置对象是什么? 7 如何改变 HTML元素的样式? 设置元素的样式 style 属性

javascript笔记02:严格模式的特定要求

1.严格模式变量必须声明,不然会报错: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-

javascript基础-02

一.循环语句 (2) Do…while do { //statements; } while (condition); do { 需执行的代码 } while (变量<=结束值) 例: var i = 1; do { alert(i); i++; }while(i < 3); (3) for 循环语句 for(initial; expression; post-loop-expression){ //statement; } for (变量=开始值;变量<=结束值;变量=变量+步进值)

javascript温故知新

1 javascript作用域 初学javascript的时候,变量的作用域就感觉有些麻烦,他不像C#或java那样清晰明了,貌似处处都在作用域内,但有时会处处都是空. javascript中,变量的作用域只有两种,全局变量和局部变量,并且只由函数决定,函数内的即为局部变量,函数外的就为全局变量 如图: 一切要是都这样,那么世界该有多么美好!!!但是 总会有各种各样的陷阱 陷阱1:函数中声明全局变量 函数中省略var 关键字 笔误 在for循环中,i前忘记写var 第二点的扩充,for(var

JavaScript 用法02

前言: 介绍一下javascript的最基础语法规范和用法. HTML 中的脚本必须位于 <script> 与 </script> 标签之间. 脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中. 1.<script> 标签 如需在 HTML 页面中插入 JavaScript,请使用 <script> 标签. <script> 和 </script> 会告诉 JavaScript 在何处开

javascript基础02

1.数据类型 数据类型的描述在上篇的扩展中有写到链接 由于ECMAScript数据类型具有动态性,因此的确没有再定义其他数据类型的必要.这句话很重要. 如果以后再数据类型上有混乱的情况出现,想想这句话,就应该可以想通了,这句话意思: 数据类型可以随意的改变,不受什么限制,它就像一个你在容器装东西,你可以这一秒装 零食,下一秒又把零食去掉换成装水,这些水啊.零食啊等等就是数据类型,所以在数据类型上 别觉得它很复杂,其他它就这样. 2.运算符只部分 加减乘除就是很简单的数学运算,不提. 但小数点的问

【2016.12.05】JavaScript笔记02