首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >25 道神奇的 javascript 示例,全答对算我输!!!

25 道神奇的 javascript 示例,全答对算我输!!!

作者头像
@超人
发布于 2021-09-17 06:09:21
发布于 2021-09-17 06:09:21
1.1K00
代码可运行
举报
文章被收录于专栏:Vue中文社区Vue中文社区
运行总次数:0
代码可运行

JavaScript 是一种很好的语言。它有一个简单的语法,庞大的生态系统,以及最重要,最伟大的社区。同时,我们都知道,JavaScript 是一个非常有趣又充满戏法的语言。 他们中的有些可以迅速将我们的日常工作变成地狱,有些可以让我们大声笑起来。

背景

这些示例的主要目的是收集一些疯狂的例子,并解释它们如何工作,如果可能的话。只是因为学习以前不了解的东西很有趣。如果您是初学者,您可以阅读此文章来深入了解 JavaScript。我希望这个文章会激励你花更多的时间阅读规范。如果您是专业开发人员,您可以将这些示例视为您公司新手访问问题和测验的重要资源。同时,这些例子在准备面试时会很方便。无论如何,读读看。也许你会为自己找到新的东西。

例子

1. true + false

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Number(true); // -> 1
Number(false); // -> 0
1 + 0; // -> 1

💡 说明:

布尔值被转换为它们的数字表示

2. true 是 false

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!!"false" == !!"true"; // -> true
!!"false" === !!"true"; // -> true

💡 说明:

考虑一下这一步:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
true == "true"; // -> true
false == "false"; // -> false

// 'false' 不是空字符串,所以它的值是 true
!!"false"; // -> true
!!"true"; // -> true

3. baNaNa

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"b" + "a" + +"a" + "a"; // baNaNa

用 JavaScript 写的老派笑话:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"foo" + +"bar"; // -> 'fooNaN'

💡 说明:

这个表达式可以转化成 'foo' + (+'bar'),但无法将'bar'强制转化成数值。

4. NaN 不是一个 NaN

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NaN === NaN; // -> false

💡 说明:

规范严格定义了这种行为背后的逻辑:

  1. 如果 Type(x) 不同于 Type(y), return false.
  2. 如果 Type(x) 数值, 然后
    1. 如果 x 是 NaN, return false.
    2. 如果 y 是 NaN, return false.
    3. … … …

遵循 IEEE 的“NaN”的定义:

有四种可能的相互排斥的关系:小于,等于,大于和无序。 当至少一个操作数是 NaN 时,便是最后一种情况。每个 NaN 都要比较无穷无尽的一切,包括自己。

5. 它是 fail

你不会相信,但...

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(![] + [])[+[]] +
  (![] + [])[+!+[]] +
  ([![]] + [][[]])[+!+[] + [+[]]] +
  (![] + [])[!+[] + !+[]];
// -> 'fail'

💡 说明:

将大量的符号分解成片段,我们注意到,以下表达式经常出现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
![] + []; // -> 'false'
![]; // -> false

所以我们尝试将[]false加起来。 但是通过一些内部函数调用(binary + Operator - >ToPrimitive - >[[DefaultValue] ]),我们最终将右边的操作数转换为一个字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
![] + [].toString(); // 'false'

将字符串作为数组,我们可以通过[0]来访问它的第一个字符:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"false"[0]; // -> 'f'

现在,其余的是明显的,可以自己弄清楚!

6. []true, 但它不等于 true

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!![]       // -> true
[] == true // -> false

💡 说明:

数组是一个true,但是它不等于true

7. null 是 false, 但又不等于 false

尽管 nullfalse,但它不等于 false

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!!null; // -> false
null == false; // -> false

同时,其他的一些等于 false 的值,如 0'' 等于 false

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0 == false; // -> true
"" == false; // -> true

💡 说明:

跟前面的例子相同。这是一个相应的链接:

  • 7.2.13 抽象相等比较

8. document.all 是一个 object,但又同时是 undefined

⚠️ 这是浏览器 API 的一部分,对于 Node.js 环境无效 ⚠️

尽管 document.all 是一个 array-like object 并且通过它可以访问页面中的 DOM 节点,但在通过 typeof 的检测结果是 undefined

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.all instanceof Object; // -> true
typeof document.all; // -> 'undefined'

同时,document.all 不等于 undefined

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.all === undefined; // -> false
document.all === null; // -> false

但是同时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.all == null; // -> true

💡 说明:

document.all 曾经是访问页面 DOM 节点的一种方式,特别是在早期版本的 IE 浏览器中。它从未成为标准,但被广泛使用在早期的 JS 代码中。当标准演变出新的 API 时(例如 document.getElementById)这个 API 调用就被废弃了,标准委员会必须决定如何处理它。因为它被广泛使用嗯他们决定保留这个 API 但引入一个有意的对 JavaScript 的标准的违反。 其与 undefined 使用严格相等比较得出 false 而使用抽象相等比较 得出 true 是因为这个有意的对标准的违反明确地允许了这一点。

9. 最小值大于零

Number.MIN_VALUE 是最小的数字,大于零:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Number.MIN_VALUE > 0; // -> true

💡 说明:

Number.MIN_VALUE5e-324 ,即可以在浮点精度内表示的最小正数,即可以达到零。 它定义了浮点数的最高精度。

现在,整体最小的值是 Number.NEGATIVE_INFINITY ,尽管这在严格意义上并不是真正的数字。

10. 函数不是函数

⚠️ V8 v5.5 或更低版本中出现的 Bug(Node.js <= 7) ⚠️

你们所有人都知道的关于讨厌的 undefined 不是 function ,但是这个呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Declare a class which extends null
class Foo extends null {}
// -> [Function: Foo]

new Foo() instanceof null;
// > TypeError: function is not a function
// >     at … … …

💡 说明:

这不是规范的一部分。这只是一个错误,现在它已被修复,所以将来不会有这个问题。

11. 数组相加

如果您尝试两个数组相加呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[1, 2, 3] + [4, 5, 6]; // -> '1,2,34,5,6'

💡 说明:

会发生合并。一步一步地,它是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[1, 2, 3] +
  [4, 5, 6][
    // joining
    (1, 2, 3)
  ].join() +
  [4, 5, 6].join();
// concatenation
"1,2,3" + "4,5,6";
// ->
("1,2,34,5,6");

12. 数组中的逗号

您已经创建了一个包含 4 个空元素的数组。尽管如此,你还是会得到一个有三个元素的,因为后面的逗号:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let a = [, , ,];
a.length; // -> 3
a.toString(); // -> ',,'

💡 说明:

尾逗号 (有时也称为“最后逗号”) 在向 JavaScript 代码中添加新元素、参数或属性时有用。如果您想添加一个新属性,您可以简单地添加一个新行,而不用修改以前的最后一行,如果该行已经使用了后面的逗号。这使得版本控制比较清洁和编辑代码可能不太麻烦。

13. 数组相等是一个怪物

数组进行相等比较是一个怪物,看下面的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[] == ''   // -> true
[] == 0    // -> true
[''] == '' // -> true
[0] == 0   // -> true
[0] == ''  // -> false
[''] == 0  // -> true

[null] == ''      // true
[null] == 0       // true
[undefined] == '' // true
[undefined] == 0  // true

[[]] == 0  // true
[[]] == '' // true

[[[[[[]]]]]] == '' // true
[[[[[[]]]]]] == 0  // true

[[[[[[ null ]]]]]] == 0  // true
[[[[[[ null ]]]]]] == '' // true

[[[[[[ undefined ]]]]]] == 0  // true
[[[[[[ undefined ]]]]]] == '' // true

💡 说明:

你应该非常小心留意上面的例子! 7.2.13 Abstract Equality Comparison 规范描述了这些行为。

14. undefinedNumber

如果我们不把任何参数传递到 Number 构造函数中,我们将得到 0undefined 是一个赋值形参,没有实际的参数,所以您可能期望 NaNundefined 作为参数的值。然而,当我们通过 undefined ,我们将得到 NaN

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Number(); // -> 0
Number(undefined); // -> NaN

💡 说明:

根据规范:

  1. 如果没有参数传递给这个函数,让 n+0 ;
  2. 否则,让 n 调用 ToNumber(value)
  3. 如果值为 undefined,那么 ToNumber(undefined) 应该返回 NaN.

15. parseInt 是一个坏蛋

parseInt 它以的怪异而出名。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parseInt("f*ck"); // -> NaN
parseInt("f*ck", 16); // -> 15

**💡 说明:

** 这是因为 parseInt 会持续通过解析直到它解析到一个不识别的字符,'f*ck' 中的 f 是 16 进制下的 15

解析 Infinity 到整数也很有意思…

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//
parseInt("Infinity", 10); // -> NaN
// ...
parseInt("Infinity", 18); // -> NaN...
parseInt("Infinity", 19); // -> 18
// ...
parseInt("Infinity", 23); // -> 18...
parseInt("Infinity", 24); // -> 151176378
// ...
parseInt("Infinity", 29); // -> 385849803
parseInt("Infinity", 30); // -> 13693557269
// ...
parseInt("Infinity", 34); // -> 28872273981
parseInt("Infinity", 35); // -> 1201203301724
parseInt("Infinity", 36); // -> 1461559270678...
parseInt("Infinity", 37); // -> NaN

也要小心解析 null

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parseInt(null, 24); // -> 23

💡 说明:

它将 null 转换成字符串 'null' ,并尝试转换它。 对于基数 0 到 23,没有可以转换的数字,因此返回 NaN。 在 24,“n” ,第 14 个字母被添加到数字系统。 在 31,“u” ,添加第 21 个字母,可以解码整个字符串。 在 37 处,不再有可以生成的有效数字集,并返回 NaN

不要忘记八进制:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parseInt("06"); // 6
parseInt("08"); // 8 如果支持 ECMAScript 5
parseInt("08"); // 0 如果不支持 ECMAScript 5

💡 说明:

这是因为 parseInt 能够接受两个参数,如果没有提供第二个参数,并且第一个参数以 0 开始,它将把第一个参数当做八进制数解析。

parseInt 总是把输入转为字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parseInt({ toString: () => 2, valueOf: () => 1 }); // -> 2
Number({ toString: () => 2, valueOf: () => 1 }); // -> 1

解析浮点数的时候要注意

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parseInt(0.000001); // -> 0
parseInt(0.0000001); // -> 1
parseInt(1 / 1999999); // -> 5

💡 说明: ParseInt 接受字符串参数并返回一个指定基数下的证书。ParseInt 也去除第一个字符串中非数字字符(字符集由基数决定)后的内容。0.000001 被转换为 "0.000001"parseInt 返回 0。当 0.0000001 被转换为字符串时它被处理为 "1e-7" 因此 parseInt 返回 11/1999999 被转换为 5.00000250000125e-7parseInt 返回 5

16. truefalse 数学运算

我们做一些数学计算:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
true +
  true(
    // -> 2
    true + true
  ) *
    (true + true) -
  true; // -> 3

嗯… 🤔

💡 说明:

我们可以用 Number 构造函数强制转化成数值。 很明显,true 将被强制转换为 1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Number(true); // -> 1

一元加运算符尝试将其值转换成数字。 它可以转换整数和浮点的字符串表示,以及非字符串值 truefalsenull 。 如果它不能解析特定的值,它将转化为 NaN 。 这意味着我们可以更容易地强制将 true 换成 1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+true; // -> 1

当你执行加法或乘法时,ToNumber方法调用。 根据规范,该方法返回:

如果 参数 is true , 返回 1 。 如果 参数 是 false 返回 +0。

这就是为什么我们可以进行进行布尔值相加并得到正确的结果

相应部分:

  • 12.5.6 一元 + 运算符
  • 12.8.3 加法运算符(+
  • 7.1.3 ToNumber(argument)

17. HTML 注释在 JavaScript 中有效

你会留下深刻的印象,<!-- (这是 HTML 注释)是一个有效的 JavaScript 注释。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 有效注释
<!-- 也是有效的注释

💡 说明:

感动吗? 类似 HTML 的注释旨在允许不理解标签的浏览器优雅地降级。这些浏览器,例如 Netscape 1.x 已经不再流行。因此,在脚本标记中添加 HTML 注释是没有意义的。

由于 Node.js 基于 V8 引擎,Node.js 运行时也支持类似 HTML 的注释。

18. NaN 不是一个数值

尽管 NaN 类型是 'number' ,但是 NaN 不是数字的实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
typeof NaN; // -> 'number'
NaN instanceof Number; // -> false

💡 说明:

typeofinstanceof 运算符的工作原理:

  • 12.5.5 typeof 操作符
  • 12.10.4 Runtime Semantics: InstanceofOperator(O,C)

19. []null 是对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
typeof []; // -> 'object'
typeof null; // -> 'object'

// 然而
null instanceof Object; // false

💡 说明:

typeof 运算符的行为在本节的规范中定义:

根据规范,typeof 操作符返回一个字符串 。对于没有 [[Call]] 实现的 null、普通对象、标准特异对象和非标准特异对象,它返回字符串 "object“

但是,您可以使用 toString 方法检查对象的类型。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Object.prototype.toString.call([]);
// -> '[object Array]'

Object.prototype.toString.call(new Date());
// -> '[object Date]'

Object.prototype.toString.call(null);
// -> '[object Null]'

20. 神奇的数字增长

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
999999999999999; // -> 999999999999999
9999999999999999; // -> 10000000000000000

💡 说明:

这是由 IEEE 754-2008 二进制浮点运算标准引起的。

21. 0.1 + 0.2 精度计算

来自 JavaScript 的知名笑话。0.10.2 相加是存在精度错误的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0.1 +
  0.2(
    // -> 0.30000000000000004
    0.1 + 0.2
  ) ===
  0.3; // -> false

💡 说明:

浮点计算坏了:

程序中的常量 0.20.3 也将近似为真实值。最接近 0.2double 大于有理数 0.2 ,但最接近 0.3double 小于有理数 0.30.10.2 的总和大于有理数 0.3,因此不符合您的代码中的常数判断。

这个问题是众所周知的,甚至有一个网站叫 0.30000000000000004.com。

22. 扩展数字的方法

您可以添加自己的方法来包装对象,如 NumberString

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Number.prototype.isOne = function() {
  return Number(this) === 1;
};

(1.0).isOne(); // -> true
(1).isOne(); // -> true
(2.0)
  .isOne()(
    // -> false
    7
  )
  .isOne(); // -> false

💡 说明:

显然,您可以像 JavaScript 中的任何其他对象一样扩展 Number 对象。但是,不建议扩展不属于规范的行为定义。以下是 Number 属性的列表:

23. 三个数字的比较

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 < 2 < 3; // -> true
3 > 2 > 1; // -> false

💡 说明:

为什么会这样呢?其实问题在于表达式的第一部分。以下是它的工作原理:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 < 2 < 3; // 1 < 2 -> true
true < 3; // true -> 1
1 < 3; // -> true

3 > 2 > 1; // 3 > 2 -> true
true > 1; // true -> 1
1 > 1; // -> false

我们可以用 大于或等于运算符(>=

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
3 > 2 >= 1; // true

24. 有趣的数学

通常 JavaScript 中的算术运算的结果可能是非常难以预料的。 考虑这些例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 3  - 1  // -> 2
 3  + 1  // -> 4
'3' - 1  // -> 2
'3' + 1  // -> '31'

'' + '' // -> ''
[] + [] // -> ''
{} + [] // -> 0
[] + {} // -> '[object Object]'
{} + {} // -> '[object Object][object Object]'

'222' - -'111' // -> 333

[4] * [4]       // -> 16
[] * []         // -> 0
[4, 4] * [4, 4] // NaN

💡 说明:

前四个例子发生了什么?这是一个小表,以了解 JavaScript 中的添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Number  + Number  -> addition
Boolean + Number  -> addition
Boolean + Boolean -> addition
Number  + String  -> concatenation
String  + Boolean -> concatenation
String  + String  -> concatenation

剩下的例子呢?在相加之前,[]{} 隐式调用 ToPrimitiveToString 方法。

25. 字符串不是 String 的实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"str"; // -> 'str'
typeof "str"; // -> 'string'
"str" instanceof String; // -> false

💡 说明:

String 构造函数返回一个字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
typeof String("str"); // -> 'string'
String("str"); // -> 'str'
String("str") == "str"; // -> true

我们来试试一个 new

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
new String("str") == "str"; // -> true
typeof new String("str"); // -> 'object'

对象?那是什么?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
new String("str"); // -> [String: 'str']

注: 部分内容参考自jsisweird

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Vue中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
js工具函数大全 || 实用篇
“ 关注 前端开发社区 ,回复 '领取资源',免费领取Vue,小程序,Node Js,前端开发用的插件以及面试视频等学习资料,让我们一起学习,一起进步
前端老道
2020/05/29
4.8K0
js工具函数大全 || 实用篇
前端js基础教程
Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。Java和JavaScript的关系就像张雨生和张雨的关系,只是名字很像。
张哥编程
2024/12/13
2840
前端js基础教程
javascript面向对象
对象的属性名没有任何的要求,不需要遵守表示符的规范,但是尽量按照表示符的要求去写。
OY
2022/02/21
7330
JS面向对象笔记
0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7
tandaxia
2018/09/27
7.7K0
JavaScript基础
一 JavaScript的基础 1.1 JS的引入方式 1 直接编写 <script> alert('hello yuan') </script> 2 导入文件 <script src="hello.js"></script> 1.2 JS的变量、常量和标识符 1.2.1 JS的变量 1 2 3 x=5 y=6 z=x+y 在代数中,我们使用字母(比如 x)来保存值(比如 5)。通过上面的表达式 z=x+y,我们能够计算出 z
用户1214487
2018/01/24
2.1K0
JavaScript基础
JavaScript学习笔记+常用js用法、范例(一)
JavaScript是一种网页编程技术,经常用于创建动态交互网页 JavaScript是一种基于对象和事件驱动的解释性脚本语言,类似C语言和Java的语法 事先不编译;逐行执行;无需进行严格的变量声明;内置大量现成对象,编写少量程序可以完成目标 不同的浏览器甚至同一浏览器的不同版本对JavaScript的支持程度都不一样
用户6808043
2022/02/24
2.3K0
前端学习之JavaScript
尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:
超蛋lhy
2018/08/31
1.8K0
前端学习之JavaScript
JavaScript实用手册
1. JavaScript 是专门编写网页交互行为的语言,HTML 和 CSS 是静态语言,编写静态内容,无法编写逻辑,无法执行计算,所有静态网页必须使用 JavaScript 添加上交互行为,才能让用户使用
越陌度阡
2020/11/26
3.5K0
总结Js方法工具类库,总有你需要的方法
实际开发工程中,会遇到一些重复的逻辑功能处理或者说是比较繁琐的前端函数。粗略整理了一下,希望对正在浏览的你有所帮助,也希望帮助新入行的小白们解决一下工作中的负担(毕竟谁都是从小白一步一步走过来的,所经受的苦在座的各位也不必我去言说)
Parker
2020/07/22
4.2K0
Python100Days
这可能是我目前发现最好最好的Python教程了,故整理至我的博客。 原项目GitHub地址https://github.com/jackfrued/Python-100-Days
一点儿也不潇洒
2018/08/07
10.1K0
JavaScript基础
「计算机语言」分为机器语言,汇编语言,高级语言。计算机内部最终执行的都是机器语言,由0和1这样的二进制数构成。
小城故事
2023/03/10
1.1K0
JavaScript基础
Python 之Web编程
  - 由一对尖括号包裹的单词构成,如<html> 所有标签中的单词不可能从数据开头
py3study
2020/02/10
2.6K0
100天学会python
目前我使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以阅读名为《Python简史》的网络文章。
她的店里只卖樱花
2023/01/06
3.4K0
100天学会python
MySQL基础及原理
因为查询语句SELECT的使用非常频繁,所有有很多人将查询语句抽取出来作为一类:
CODER-V
2023/03/04
4.1K0
MySQL基础及原理
Web前端三剑客学习笔记
一直没有系统的学习HTML,CSS,JS都是东学一点,西学一点,想着暑假得空,便系统的学习下吧,故于此记录之。
小简
2022/12/29
2.4K0
Web前端三剑客学习笔记
springcloudAlibaba+devops
springcloudAlibaba&rancher【后端专题】 简介:用户增长的数据分析模型AARRR
高大北
2022/12/20
1.4K0
springcloudAlibaba+devops
张孝祥java就业面试题大全
从享受生活的角度上来说:“程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做;第二,你非常痴迷和爱好程序,并且在这方面有一些天赋和优势。程序员的结局也是有两种:第一,默默退休,第二以程序员为起点或跳板,注意积累,跟对了好的老板或团队,找到和很好的搭档自己创业,成为IT金领和富翁。” 人们在时间面前是平等的,吾生也有涯,所以,你的经验更丰富点,那不算什么,经验是用时间积累的,你一生只有那么多时间,你能积累多少经验呢?最重要的是你的学习能力和学习方法,这个发挥的能量可以有很大差异,要提高学习能力和学习方法首先要学会思考和总结,要学会掌握事物的根本性的东西,而不是一些表面的细节。学习方法和学习能力对于IT工作者来说尤为重要,因为IT行业技术更新太快,并且细节太多,同一个技术的细节变来变去也是常有的事情,所以,IT技术学习者绝不能照着书籍和老师的讲解死记硬背和生搬硬套。搞IT工作很累人,如果学习方法不对、学习能力不强,那就更累了,不过,这怨不得别人,你的学习方法和学习能力只适合做刷盘子的工作,却非要跑到程序员圈子里来混,那谁能有办法拯救你! 在没有人指引的情况下,只能是自己一个知识点、一个知识点地漫无目的学习,等到积累了足够的知识量后,才有能力开始思考和琢磨原理方面的问题,这个学习过程很漫长。如果能在好老师的指引下,老师会启发你先思考原理问题,然后再去学习一个具体的知识点,让你能够举一反三、触类旁通,这样的学习效率就会更高。 多学了几个知识,并不能说明你就很厉害了,只能说是你比别人投入了更多的时间和精力而已,别人想做也能做到!不是你学了多少知识就算厉害了,关键是要用好学到的知识,要让学到的知识发挥出最大的社会价值和经济价值,这才是最厉害的。 另外,一个人的未来和造化,会深受环境的影响,所谓孟母三迁,近朱者赤、近墨者黑的大大道理,这些典故大家不一定能深刻领悟和感受,我们就不多说了。就拿现代比较接近我们生活的事例来说,如果你周围的朋友全是以擦皮鞋为生、每月辛辛苦苦下来就挣1500元,那么估计你的职业也是跟着擦皮鞋了,即使你再聪明和再勤奋,顶多每月比你那帮朋友多挣300元,合下来也就区区1800元/月。前几年只要抓住了大势,没钱全部找银行贷款了在北京买房、到山西开煤矿,是头猪也能每年大把大把地捞钱,如果你周围的朋友全是投机倒把的买房和开煤矿者,你的职业自然也是与他们干同样的事情,即使你再差,每年也能挣到百来万不成问题,这就是环境的重要性。聪明的你因为没有机会置身于炒房团中,比那些有机会接触炒房者的猪挣得就要少、就要累。到传智播客的环境中来,你就很有机会拿到高薪了,你可以不参加传智播客的培训,但只要想办法与传智播客的学员们住在一起,成功的机会就大多了。
MickyInvQ
2023/04/04
9910
计算机常用1700英语单词及缩写_计算机必背英语单词
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
1.3K0
计算机专用英语词汇1695个词汇表
特别感谢: 不愿意透露姓名的小虾同学提供的音标部分 1.单词说明:   command n. 命令,指令 [kə'mɑ:nd]   单词拼写 名词 单词含义 音标(发音)   提示:着重记忆
惨绿少年
2017/12/27
4.5K0
[日常] 面试知识点总结(持续更新)
数据结构和算法: 物理结构和逻辑结构 1.逻辑结构(集合结构,线性结构,树形结构,图形结构) 2.物理结构一般是讲内存,顺序存储结构,链式存储结构 浅谈算法中,高斯算法从1加到100,循环的话是100次,高斯的方法只需要一次 1.推导大O阶:O(1) O(n) O(n^2) O(logn) 1.常数1取代时间所有加法常数 2.只保留最高项 3.去除项相乘的常数,去掉系数
唯一Chat
2019/09/10
5K0
相关推荐
js工具函数大全 || 实用篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验