gpt4 book ai didi

javascript - 具有三元运算符语法的 typeof Float32Array

转载 作者:行者123 更新时间:2023-12-02 17:08:00 25 4
gpt4 key购买 nike

我正在尝试理解 http://matthew.wagerfield.com/flat-surface-shader/ 上的代码第一行让我感到困惑:

FSS.Array = typeof Float32Array === 'function' ? Float32Array : Array;

上面这一行的作用是什么?

我相信最后的 ?: 是说“如果有东西则等于 Float32Array,否则等于 Array”。但我不明白 typeof Float32Array === 'function' 是如何工作的。它是说 typeof Float32Array 是否完全等于字符串“function”?这对我来说没有意义。

最佳答案

代码正在检查浏览器是否支持 javascript 函数 Float32Array

三元表达式等于:

if (typeof Float32Array == "function") {
FSS.Array = Float32Array;
} else {
FSS.Array = Array;
}

typeof 只是返回变量的类型,在本例中变量是“Float32Array”

这里是关于 typeof 的文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof

以下是文档中的一些其他示例:

// Numbers
typeof 37 === 'number';
typeof 3.14 === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number'; // Despite being "Not-A-Number"
typeof Number(1) === 'number'; // but never use this form!


// Strings
typeof "" === 'string';
typeof "bla" === 'string';
typeof (typeof 1) === 'string'; // typeof always return a string
typeof String("abc") === 'string'; // but never use this form!


// Booleans
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(true) === 'boolean'; // but never use this form!


// Symbols
typeof Symbol() === 'symbol'
typeof Symbol('foo') === 'symbol'
typeof Symbol.iterator === 'symbol'


// Undefined
typeof undefined === 'undefined';
typeof blabla === 'undefined'; // an undefined variable


// Objects
typeof {a:1} === 'object';

// use <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray">Array.isArray</a> or Object.prototype.toString.call
// to differentiate regular objects from arrays
typeof [1, 2, 4] === 'object';

typeof new Date() === 'object';


// The following is confusing. Don't use!
typeof new Boolean(true) === 'object';
typeof new Number(1) === 'object';
typeof new String("abc") === 'object';


// Functions
typeof function(){} === 'function';
typeof Math.sin === 'function';

关于javascript - 具有三元运算符语法的 typeof Float32Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25074341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com