在一些库的代码中(例如AngularJS,链接指向代码中的特定行),我可以看到使用自定义大小写转换函数而不是标准函数.假设在具有土耳其语语言环境的浏览器中,标准函数不能按预期工作,这是合理的:
console.log("SCRIPT".toLowerCase()); // "scr?pt"
console.log("script".toUpperCase()); // "SCR?PT"
Run Code Online (Sandbox Code Playgroud)
但这是真的还是一直如此?浏览器真的有这样的表现吗?如果是这样,他们中的哪一个呢?node.js怎么样?其他JS引擎?
这些toLocaleLowerCase和toLocaleUpperCase方法的存在意味着toLowerCase并且toUpperCase是区域不变的,不是吗?
对于什么样的浏览器,具体而言,它的角团队保留此检查的代码:if ('i' !== 'I'.toLowerCase())...?
如果您的浏览器(设备)使用土耳其语或阿塞拜疆语区域设置,请运行此代码段并在发现问题确实存在时写信给我.
if ('i' !== 'I'.toLowerCase()) {
document.write('Ooops! toLowerCase is locale-sensitive in your browser. ' +
'Please write your user-agent in the comments to this question: ' +
navigator.userAgent);
} else {
document.write('toLowerCase isn\'t locale-sensitive in your browser. ' +
'Everything works as expected!');
}Run Code Online (Sandbox Code Playgroud)
<html lang="tr">Run Code Online (Sandbox Code Playgroud)