字符串值函数上的Javascript typeof运算符返回" function"而不是"字符串"

时间:2016-01-23 05:11:32

标签: javascript typeof

var x=7;
console.log(typeof x);
// number
var x="7";
console.log(typeof x);
// string
var doh = "Doh";
console.log(typeof doh.toUpperCase);
// function

在第三个示例中.toUpperCase返回字符串,其typeof返回函数

有人可以解释原因吗?

2 个答案:

答案 0 :(得分:5)

只有 private static void XDocumentLINQ() { string xml = @"<?xml version=""1.0"" encoding=""utf-8""?> <Project Guid=""9e9a67f8"" Name=""GameThings"" Version=""1.7""> <Subsystems> <Values Name=""Thing1""> <Values Name=""Stuff1"" Type=""int"" Value=""0"" /> <Values Name=""Stuff2"" Type=""int"" Value=""5"" /> </Values> <Values Name=""Thing2""> <Values Name=""Top"" Type=""int"" Value=""10"" /> <Values Name=""Bottom"" Type=""int"" Value=""15"" /> </Values> </Subsystems> <OtherSystems> <Values Name=""Thing3""> <Values Name=""Stuff3"" Type=""int"" Value=""0"" /> <Values Name=""Stuff4"" Type=""int"" Value=""5"" /> </Values> </OtherSystems> </Project>"; XDocument doc = XDocument.Parse(xml); var elements = doc.Descendants("Project").Elements("Subsystems").Elements("Values").Where(x=>x.Attribute("Name").Value == "Thing2").Elements("Values"); foreach (XElement elem in elements) { Console.WriteLine(elem.Attribute("Name").Value + " value is: " + elem.Attribute("Value").Value); } Console.ReadKey(); } 的结果是一个字符串,但toUpperCase本身就是一个函数。你实际上必须执行它,就像这样

toUpperCase

例如,

console.log(typeof doh.toUpperCase());
// string

答案 1 :(得分:0)

String.prototype.toUpperCase() toUpperCase()方法返回转换为大写的调用字符串值。

typeof运算符返回一个表示操作数类型的字符串,typeof doh.toUpperCasefunction