noe132 最近的时间轴更新
noe132's repos on GitHub
1 人关注
react-scoped-css
CSS encapsulation solution for React
0 人关注
base16-tomorrow-dark-vscode
A VS Code theme based on Atom's base16-tomorrow-dark
JavaScript · 0 人关注
eslint-config
C · 0 人关注
mactype
Automatically exported from code.google.com/p/mactype
Vue · 0 人关注
namenone-chat
Looking for a description? Well, you get to the wrong place.
JavaScript · 0 人关注
qr-image
Yet another QR code generator
CSS · 0 人关注
Quel-Thalas-Stock-Management
0 人关注
queue
A simple node asynchronous concurrent job queue.
TypeScript · 0 人关注
rum-app
Rust · 0 人关注
rust-embed-resource-lib-bug
noe132

noe132

🏢  长沙大学 / 前端
V2EX 第 52249 号会员,加入于 2013-12-19 21:23:33 +08:00
今日活跃度排名 3448
根据 noe132 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
noe132 最近回复了
11 小时 47 分钟前
回复了 iloveMonica 创建的主题 奇思妙想 把手机的储存芯片换成机械硬盘
机械硬盘的 4k 放手机上估计能卡死
17 小时 47 分钟前
回复了 luffy 创建的主题 问与答 有对牙膏成分有了解的嘛?
因为大都是营销话术。
牙膏最主要的就是碳酸钙这样的颗粒物,帮助摩擦的。
不如加钱买水牙线,可以更方便清洁刷不到的地方
2 天前
回复了 yousabuk 创建的主题 程序员 问个弱弱的问题:关于域名证书的。
会加密。
7 天前
回复了 tool2d 创建的主题 硬件 为什么小米要自己发明 USB 接口啊?
省钱
9 天前
回复了 dxatgp02 创建的主题 Java Java 对象里为什么要用 get set?
因为 java 没有像 C#的 getter/setter 只能用方法来模拟
说个在价位之外的选择
g pro superlight ,我每天使用 6-8 小时,续航 10 天左右,内置锂电池,双侧键
滑铲游戏里很常见基本都是用 slide
还有用 type 写的一些 dsl 解释器,确实很牛逼
18 天前
回复了 wjx0912 创建的主题 JavaScript typescript 类型转换请教
当你需要把 string 内的值转换成 number 类型时,需要使用 parseInt / parseFloat / Number 这样的方法来处理。当 string 内的字符无法被解析成 number 时,通常都会给一个特殊值 NaN (Not a Number),这个值不和任何值相等,甚至 NaN 也不等于 NaN ,判断一个值是不是 NaN 的方法是 Number.isNaN
18 天前
回复了 wjx0912 创建的主题 JavaScript typescript 类型转换请教
和 C / Java 等语言很大不同的是,ts 的编译时类型和运行时类型是完全分开的,而且 ts 的编译相对来说非常简单,只需要去掉所有类型标注就是编译几乎全过程。any 这个类型可以看作一种 opt-out ,当你不像让 ts 做检查的时候就可以用 any 。而很多其他静态类型的语言根本就不存在这样的概念,这也是因为 ts 编译的 target 是 js ,是一个动态类型的语言。

ts 的编译和 C / Java 这类语言的编译有很大的区别,ts 的编译过程可以简单看做 2 步,1 对类型做检查,2 去掉所有类型标注。

现在回答一下你的问题
1. 因为 typeof 是一个运行时执行的操作符,会根据运行时变量的类型输出结果。ts 中的类型也有 typeof 操作符,比如
const a = 1
type A = typeof a
这里的 typeof 是编译时的,得到的结果是一个 ts 的类型,和你的例子中的 typeof 虽然长得一模一样,但却是 2 个不一样的东西。

2. str2 的类型是 number ,赋值一个 '3' 相当于赋值一个 string 给 number ,当然是不允许的。

3. 即使你用 as any as number 把一个 string 类型的值赋值给了一个 number 类型的变量,但是在运行时这个变量实际持有的还是 string 。ts 的类型转换不会对值做任何操作,而只是影响类型检查的结果。所以在运行时,3 + str3 实际上是 3 + '1' ,得到的结果则是 '31'。至于为啥 结果是 '31',这属于动态类型语言的问题,具体的行为得看规范( https://262.ecma-international.org/5.1/#sec-11.6.1 ),但简单来说就是如果出现了 数字+字符 的情况,无论左侧是字符还是右侧是字符,会先把 2 个都转为字符,然后再进行字符串拼接的操作。
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2460 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 02:22 · PVG 10:22 · LAX 19:22 · JFK 22:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.