获取这个简单的测试对象并将其粘贴到控制台中。你会看到它说undefined。该对象正在工作,因为它还打印123,但是这是什么呢undefined?
测试:
var Test = new (function(){
return {
get testing(){
return "123";
}
}
});
console.log(Test.testing);
Run Code Online (Sandbox Code Playgroud)
控制台输出:
123
undefined
Run Code Online (Sandbox Code Playgroud) 使用angular.bind而不是ECMAScript 5的Function.prototype.bind有什么好处吗?
它只是一个支持旧版浏览器的垫片还是有一些优势?
也许这是一个基本问题,但它们之间有什么不同: - 一个开发了ES3支持的Web项目和一个开发了ES5支持的Web项目?
换句话说,如果您支持ES5,您可以为项目添加哪些增强功能?
我试图将数字转换123456.789为“印度语言环境格式”向导,1,23,456.789因为印度使用了成千上万的分隔符。
我可以用大约10-20行代码成功完成此操作,然后来到了MDN的这篇文章。
您会看到第11行,他们在那里声明了一种将其转换的机制
// India uses thousands/lakh/crore separators
console.log(number.toLocaleString('en-IN'));
// ? 1,23,456.789
Run Code Online (Sandbox Code Playgroud)
但它不起作用(已在Chrome v49.0.2623和Safari中测试)
Output in safari:
123456.789
Output in chrome:
123,456.789
Run Code Online (Sandbox Code Playgroud)
但是它在Firefox中起作用
Output in Firefox:
1,23,456.789
Run Code Online (Sandbox Code Playgroud)
但是,当我阅读浏览器兼容性表时,有人说它在chrome v24 +中受支持
是错误还是我做错了什么?
// India uses thousands/lakh/crore separators
console.log(number.toLocaleString('en-IN'));
// ? 1,23,456.789
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我使用 C++11 中的 JavaScript (ECMAScript) 正则表达式提取 : 和 ^ 符号之间的文本吗?我不需要捕获它hw-descriptor本身 - 但它必须存在于该行中,以便该行的其余部分被考虑进行匹配。此外:p....^, 、:m....^和:u....^可以按任何顺序到达,并且必须至少有 1 个存在。
我尝试使用以下正则表达式:
static const std::regex gRegex("(?:hw-descriptor)(:[pmu](.*?)\\^)+", std::regex::icase);
Run Code Online (Sandbox Code Playgroud)
针对以下文本行:
"hw-descriptor:pTEXT1^:mTEXT2^:uTEXT3^"
Run Code Online (Sandbox Code Playgroud)
这是发布在实时 coliru上的代码。它显示了我如何尝试解决这个问题,但我只得到 1 场比赛。我需要了解如何提取与前面描述的 pm 或 u 字符相对应的 3 个潜在匹配项。
#include <iostream>
#include <string>
#include <vector>
#include <regex>
int main()
{
static const std::regex gRegex("(?:hw-descriptor)(:[pmu](.*?)\\^)+", std::regex::icase);
std::string foo = "hw-descriptor:pTEXT1^:mTEXT2^:uTEXT3^";
// I seem to only get 1 match here, I was expecting
// to loop through each of …Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一种在 ES6 中创建类似抽象类的方法。到目前为止,我尝试的一切总是遇到语言和/或其语法的限制(也是我对原型设计的有限知识)。
基本的面向对象编程;我们声明一个类并扩展它。最终类必须访问其超类的某些字段和方法,但不是全部。它还改变了公共方法......
类声明应该是完美的封装,因此除了这段代码之外没有其他东西能够到达它(类似于命名空间)。
到目前为止,我在 ES5 中的实验是错误的......我非常感谢一些建议和帮助。
(function(){
// ==================================
function AbstractClass(params) {
var _myParams = params;
var _privateField = "Only AbstractClass can see me";
this.publicField = "Everybody can see me";
function privateFunc() {
// Does private stuff
}
}
AbstractClass.prototype.publicFunc = function() {
// Does public stuff
privateFunc(); // Works?
}
// ==================================
function FinalClass(params) {
// How to pass the params to the superclass?
}
FinalClass.prototype.publicFunc = function() {
// Override and calls the superclass.publicFunc()?
// …Run Code Online (Sandbox Code Playgroud) 例如:片段 img
var a = {1: '1', 2: '2'}
var b = {3: '3', 4: '4'}
Object.assign({}, a, b)
> {1: "1", 2: "2", 3: "3", 4: "4"}
Object.assign({}, b, a)
> {1: "1", 2: "2", 3: "3", 4: "4"}
Run Code Online (Sandbox Code Playgroud)
有没有办法禁用排序?
在 TypeScript 中,克隆一个对象非常简单:
const a = {...b}
或克隆和更新
const a = {...b, c: 'd'}
例如,我有这个代码:
const a = {
'something': 1,
'e': 2,
};
const c = 'something';
delete a[c];
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法来删除该对象的属性,而不是使用传统
delete a[c]方式?(当然也不是a[c] = undefined)
有时我想知道我写的代码是否符合 ES5/安全。
示例:由于箭头函数,这将失败。
() => "something";
Run Code Online (Sandbox Code Playgroud)
我知道Babel可以解决这个问题。但有时我想测试一些案例。
有什么地方可以做到这一点吗?
我创建了一个非常简单的环境来试验 TypeScript 和 Webpack。我尽可能地遵循在线示例,但构建的输出包含() =>,它应该已更改为 ES5 语法。请注意,我没有使用 Babel - 据我所知,TypeScript 应该能够在没有它的情况下生成 ES5。
这是我的 package.json 的一部分:
"devDependencies": {
"ts-loader": "8.0.7",
"typescript": "4.0.3",
"webpack": "5.2.0",
"webpack-cli": "4.1.0",
"webpack-dev-server": "3.11.0"
},
"scripts": {
"build": "webpack"
},
Run Code Online (Sandbox Code Playgroud)
这是我的 tsconfig.json:
{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "es2020",
"target": "ES5",
"allowJs": true
}
}
Run Code Online (Sandbox Code Playgroud)
这是 webpack.config.js:
const path = require('path');
module.exports = {
entry: './src/index.ts',
devtool: 'inline-source-map',
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
},
], …Run Code Online (Sandbox Code Playgroud) ecmascript-5 ×10
javascript ×8
ecmascript-6 ×3
typescript ×2
angularjs ×1
c++ ×1
c++11 ×1
ecma ×1
prototype ×1
regex ×1
webpack ×1