研发日志

与研发有关的总结和经验

0%

在 iframe 元素上设置宽和高,一般情况下可以正常限定 iframe 的显示大小,但是在 iOS11 和 iOS12 版本的 Safari 中,宽和高会失效,iframe 会显示它的全部内容。如果内容很多,整个 iframe 会变得很大,这是个 bug。

1
<iframe width="300" height="300" src="https://zhaohaodang.com"></iframe>
阅读全文 »

今天在写一个正则表达式的时候,用了一个向后匹配?<=,在chrome浏览器里是正常的,但是在Safari浏览器里报错 SyntaxError: Invalid regular expression: invalid group specifier name

特别注意!!!这种情况下, try catch不会捕获到这个报错!!

阅读全文 »

在HTML事件处理程序中,可以直接使用event对象访问事件对象,我们不用手动定义它,也不用从函数的参数列表中读取。另一个有意思的地方是它扩展了函数中的作用域。

阅读全文 »

ES6标准引入了类class的概念,常常被用于创建一个对象。类中有个特殊的方法constructor,它的返回值有一些让人迷惑的地方。

阅读全文 »

本文先用三个步骤,简单实现一下jest模拟接口请求。然后循序渐进,给出另一个更好的可选的方案。在阅读本文之前,你应当知晓如何使用jest。

阅读全文 »

⚠️ 该方法只适合 nextjs10 版本!
next.js 从9.2版本开始内置支持css,项目中可以直接导入css文件。想要同时支持导入less,需要手动安装@zeit/next-less,在项目根目录新建文件next.config.js,添加如下代码

阅读全文 »

第一章

使用内置对象创建的变量(不带关键词new),严格等于字面量

1
2
3
4
5
var str1 = 'abc';
var str2 = String('abc');
str1 === str2; // true
typeof str1; // string
typeof str2; // string

使用new创建的变量,松散等于字面量,不严格等于字面量

1
2
3
4
5
6
var str1 = 'abc';
var str2 = new String('abc');
str1 == str2; // true
str1 === str2; // false
typeof str1; // string
typeof str2; // object

访问基本类型的属性时,javascript引擎会模拟创建一个临时对象来包围基本类型,属性访问之后引擎会立马丢弃这个临时对象。这正是“基本类型不是对象,但仍可以放问它的一些属性”的原因。

阅读全文 »