找回密码
 会员注册
查看: 14|回复: 0

代码语言的魅力

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
72245
发表于 2024-10-6 19:29:51 | 显示全部楼层 |阅读模式
本期技术加油站《代码语言的魅力》给大家带来3个部分的内容:浅谈V8 Hidden Classes和Inline Caches;浅析Java逻辑运算与位运算;理解Golang的type func(),希望能为大家的技术提升助力!01浅谈V8 Hidden Classes和Inline CachesJavascript是动态的、基于属性链的语言,V8是流行的JavaScript运行引擎。我们知道在运行时可以改变对象的属性和类型。为了定位对象的属性和类型,V8引入隐藏类(Hidden Classes)概念,用于优化属性访问速度。看如下代码:function Person(name, age) { this.name = name; this.age = age;}const zhangsan = new Person('Zhangsan', 20);const xiaofang = new Person('Xiaofang', 21);xiaofang.gender = 'female';初始化Person类时会给对象zhangsan创建隐藏类C0,C0还没有包含任何属性。当初始化属性zhangsan.name时会基于C0创建出新隐藏类C1。由此类推,属性age初始化后,生成C2。当初始化对象xiaofang时,由于属性结构相同其会复用C0、C1、C2。但是给对象xiaofang增加属性gender时,其会基于C2生成新隐藏类C3。但如果你不小心执行了delete操作,那么情况就比较糟糕,如下:function Person(name, age) { this.name = name; this.age = age;}for (let i=0; i 2 & 3 4false!!a逻辑非a 为 true 时,值为 false,a 为 false 时,值为 true。! ( 3 > 4 )true|a | b逻辑或ab 全为 false 时,计算结果为 false,否则为 true。如果 a 为 true 则结果为 true,但会继续计算 b。2 > 3 | 3 > 2true&a & b逻辑与ab 全为 true 时,计算结果为 true,否则为 false。如果 a 为 false 则结果为 false,但会继续计算 b。2 >',左移 '<<',右移补零>>>')运算符用法含义说明实例8 = 0000 100010 = 0000 1010结果&a & b按位进行与运算(AND)如果相对应位都是 1,则结果为 1,否则为 08 & 108|a | b按位进行或运算(OR)如果相对应位都是 0,则结果为 0,否则为 18 | 1010^a ^ b按位进行异或运算(XOR)如果相对应位值相同,则结果为 0,否则为 18 ^ 102??a按位进行取反运算(NOT)按位取反运算符翻转操作数的每一位,即 0 变成 1,1 变成 0。?8-9<
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-11 08:52 , Processed in 0.444564 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表