Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[js] 第17天 typeof('abc')和typeof 'abc'都是string, 那么typeof是操作符还是函数? #56

Open
haizhilin2013 opened this issue May 2, 2019 · 25 comments
Labels
js JavaScript

Comments

@haizhilin2013
Copy link
Collaborator

第17天 typeof('abc')和typeof 'abc'都是string, 那么typeof是操作符还是函数?

@haizhilin2013 haizhilin2013 added the js JavaScript label May 2, 2019
@Aprilday
Copy link

括号只是包一个表达式,而且括号是可选的。所以肯定不是函数啦

@myprelude
Copy link

myprelude commented Jun 13, 2019

不清楚

@daodaolee
Copy link

@DarthVaderrr
Copy link

这里的括号是单目运算符,不是函数的那个括号

@Konata9
Copy link

Konata9 commented Jul 11, 2019

typeof操作符,不是函数。可以添加括号,但是括号的作用是进行分组而非函数的调用。

参考自 <JavaScript 高级程序设计>

@crown3
Copy link

crown3 commented Jul 11, 2019

MDN 的截图, typeof 是操作符
image

@zhangkuibao
Copy link

zhangkuibao commented Aug 21, 2019

假设typeof是函数
则调用typeof(typeof)应该返回一个字符串'function'
但是实际操作会报错
所以typeof不是函数

@xcLtw
Copy link

xcLtw commented Sep 12, 2019

typeof 是操作符,明确定义在MDN当中,作用是对后方表达式的返回做类型定义。
在后面添加括号其实是改变计算优先级,和四则运算中的括号可以等效理解。
简单举例

typeof 123 //"number"
typeof 123+'abc'// "numberabc"
typeof(123+'abc') // "string"

@690797590
Copy link

这里的括号是单目运算符,不是函数的那个括号

是的,tyepeof()后面的这个括号是改变运算优先级,跟小学时学的“先算括号内,再算括号外乘法”是一样的

@larry0442
Copy link

typeof 是操作符啊,括号只是把表达式包裹起来而已 就像
const isTrue = (a&b) || (c&&d) 里面的一样

@blueRoach
Copy link

typeof Number // function
typeof typeof // error
所以typeof是操作符

@MrZ2019
Copy link

MrZ2019 commented Sep 15, 2020

假设typeof是函数
则调用typeof(typeof)应该返回一个字符串'function'
但是实际操作会报错
所以typeof不是函数

@jamsehua
Copy link

jamsehua commented Jan 8, 2021

好问题

@zhaofeihao
Copy link

真的会出这样的题吗😹

@xiezhenghua123
Copy link

操作符

@ConstFiv
Copy link

假设typeof是函数
则调用typeof(typeof)应该返回一个字符串'function'
但是实际操作会报错
所以typeof不是函数

这个方法还是不能自证的,因为typeof只能用于判断基础数据类型,function是引用数据类型。不过想法不错。

@378406712
Copy link

是操作符,不过有两种用法,typeof(表达式)和typeof 变量名,一种是对表达式做运算,另一种是对变量做运算。

@July107
Copy link

July107 commented Nov 3, 2021

typeof是一个操作符,并不是函数
括号的有无将会决定表达式的类型,比如

let num = 18;
typeof num + 'juls';//'number july'

@amikly
Copy link

amikly commented Nov 4, 2021

定义

typeof 操作符返回一个字符串,表示未经计算的操作数的类型

验证

// 如果typeof是一个函数的类型,这个表达式将返回’function’字符串,但此处出现了语法错误
// 所以,typeof不是一个函数
typeof(typeof)
1 Uncaught SyntaxError: Unexpected token ')'

语法中的括号

括号的作用是进行分组而非函数的调用

// 括号有无将决定表达式的类型
var iData = 99;

typeof iData + ' Wisen'; // 'number Wisen'
typeof (iData + ' Wisen'); // 'string'

@github-cxtan
Copy link

typeof 是运算符,后边的括号只是提高了优先级而已,不是函数

@xiaoqiangz
Copy link

typeof是操作符,不是函数,后面的括号只是提高了优先级。

@mohaixiao
Copy link

  1. 简述typeof
    typeof是操作符,不是函数。可以添加括号,但是这里的括号是单目运算符,是改变计算优先级,不是函数的那个括号,括号的作用是进行分组而非函数的调用。
    typeof 123 //"number"
    typeof 123+'abc'// "numberabc"
    typeof(123+'abc') // "string"
  2. 证明typeof是操作符
    假设typeof是函数,则调用typeof(typeof)应该返回一个字符串'function',但是实际操作会报错,所以typeof不是函数。

@WangXi01
Copy link

学到了,是操作符,后面括号是改变优先级,先计算括号内的东西

@never123450
Copy link

在 JavaScript 中, typeof 是一个操作符(operator),用于返回给定操作数的数据类型。它可以用于检查变量或值的类型,并返回一个表示类型的字符串。

无论是使用括号 () 包裹操作数,还是直接使用操作数, typeof 都是一个操作符。这两种写法都会返回相同的结果。

例如, typeof 'abc'typeof('abc') 都会返回字符串 'string' ,表示操作数的数据类型是字符串。

需要注意的是,虽然 typeof 在语法上类似于函数调用,但它实际上是一个操作符,而不是一个函数。这意味着 typeof 后面的括号可以省略,但为了保持代码的可读性,建议在使用 typeof 时使用括号。

@lili-0923
Copy link

typeof操作符,不是函数。
可以添加括号,但是括号的作用是进行分组而非函数的调用。
typeof 是操作符,明确定义在MDN当中。作用是对后方表达式的返回做类型定义。
在后面添加括号其实是改变计算优先级,和四则运算中的括号可以等效理解。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js JavaScript
Projects
None yet
Development

No branches or pull requests