Understanding Coercion

Modern JavaScript Learn JavaScript Fundamentals
2 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€85.19
List Price:  €119.27
You save:  €34.08
£74.77
List Price:  £104.68
You save:  £29.91
CA$137.78
List Price:  CA$192.89
You save:  CA$55.11
A$150.31
List Price:  A$210.44
You save:  A$60.13
S$129.19
List Price:  S$180.88
You save:  S$51.68
HK$777.80
List Price:  HK$1,088.96
You save:  HK$311.15
CHF 79.59
List Price:  CHF 111.43
You save:  CHF 31.83
NOK kr1,013.63
List Price:  NOK kr1,419.13
You save:  NOK kr405.49
DKK kr636.11
List Price:  DKK kr890.58
You save:  DKK kr254.47
NZ$172.27
List Price:  NZ$241.19
You save:  NZ$68.91
د.إ367.21
List Price:  د.إ514.11
You save:  د.إ146.90
৳12,200.05
List Price:  ৳17,080.55
You save:  ৳4,880.50
₹9,057.54
List Price:  ₹12,680.92
You save:  ₹3,623.38
RM409.68
List Price:  RM573.58
You save:  RM163.89
₦144,900.08
List Price:  ₦202,865.92
You save:  ₦57,965.83
₨27,977.78
List Price:  ₨39,170.01
You save:  ₨11,192.23
฿3,144.12
List Price:  ฿4,401.89
You save:  ฿1,257.77
₺4,257.57
List Price:  ₺5,960.77
You save:  ₺1,703.19
B$541.88
List Price:  B$758.66
You save:  B$216.77
R1,687.37
List Price:  R2,362.39
You save:  R675.01
Лв166.64
List Price:  Лв233.31
You save:  Лв66.66
₩147,438.25
List Price:  ₩206,419.45
You save:  ₩58,981.20
₪322.26
List Price:  ₪451.18
You save:  ₪128.91
₱5,910.90
List Price:  ₱8,275.50
You save:  ₱2,364.60
¥15,573.94
List Price:  ¥21,804.14
You save:  ¥6,230.19
MX$1,801.20
List Price:  MX$2,521.76
You save:  MX$720.55
QR363.83
List Price:  QR509.38
You save:  QR145.55
P1,322.75
List Price:  P1,851.91
You save:  P529.15
KSh12,873.43
List Price:  KSh18,023.31
You save:  KSh5,149.88
E£4,730.87
List Price:  E£6,623.40
You save:  E£1,892.53
ብር15,598.69
List Price:  ብር21,838.79
You save:  ብር6,240.10
Kz91,690.83
List Price:  Kz128,370.83
You save:  Kz36,680
CLP$91,270.93
List Price:  CLP$127,782.96
You save:  CLP$36,512.02
CN¥705.37
List Price:  CN¥987.55
You save:  CN¥282.18
RD$6,346.47
List Price:  RD$8,885.32
You save:  RD$2,538.84
DA12,964.71
List Price:  DA18,151.11
You save:  DA5,186.40
FJ$227.15
List Price:  FJ$318.02
You save:  FJ$90.87
Q764.64
List Price:  Q1,070.52
You save:  Q305.88
GY$20,885.90
List Price:  GY$29,241.10
You save:  GY$8,355.19
ISK kr12,616.33
List Price:  ISK kr17,663.37
You save:  ISK kr5,047.03
DH918.43
List Price:  DH1,285.85
You save:  DH367.41
L1,687.62
List Price:  L2,362.74
You save:  L675.11
ден5,239.78
List Price:  ден7,335.90
You save:  ден2,096.12
MOP$800.52
List Price:  MOP$1,120.76
You save:  MOP$320.24
N$1,684.29
List Price:  N$2,358.08
You save:  N$673.78
C$3,674.23
List Price:  C$5,144.07
You save:  C$1,469.83
रु14,445.11
List Price:  रु20,223.73
You save:  रु5,778.62
S/336.11
List Price:  S/470.57
You save:  S/134.45
K430.33
List Price:  K602.48
You save:  K172.15
SAR375.18
List Price:  SAR525.27
You save:  SAR150.08
ZK2,303.63
List Price:  ZK3,225.17
You save:  ZK921.54
L433.54
List Price:  L606.98
You save:  L173.43
Kč2,066.70
List Price:  Kč2,893.46
You save:  Kč826.76
Ft32,660.30
List Price:  Ft45,725.73
You save:  Ft13,065.42
SEK kr926.89
List Price:  SEK kr1,297.69
You save:  SEK kr370.79
ARS$143,373.53
List Price:  ARS$200,728.68
You save:  ARS$57,355.14
Bs689.81
List Price:  Bs965.76
You save:  Bs275.95
COP$380,209.72
List Price:  COP$532,308.82
You save:  COP$152,099.10
₡49,937.50
List Price:  ₡69,914.50
You save:  ₡19,977
L2,628.31
List Price:  L3,679.75
You save:  L1,051.43
₲670,577.05
List Price:  ₲938,834.69
You save:  ₲268,257.64
$U3,917.97
List Price:  $U5,485.31
You save:  $U1,567.34
zł359.54
List Price:  zł503.38
You save:  zł143.83
Already have an account? Log In

Transcript

Let's take a moment to discuss the concept of coercion. This is an important concept in JavaScript because JavaScript is a dynamically typed language. Now in some programming languages, when you establish a variable, you have to specify the type of variable it is what type of value it contains. If it's a string, you indicate such if it's a number, and there are multiple types of numbers, usually in some of these programming languages that you have to indicate. That's an important part of those languages. That's not true for JavaScript.

JavaScript is dynamically typed. So it based upon the value you assigned to that variable. It determines what type it is. Well, because of the nature of this, sometimes coercion happens within JavaScript. I gave an example of this in a previous movie, but let's let's repeat that example or a similar example. So I'm going to open up the console.

I'm going to create A variable set equal to one, create another variable and set that equal to the string two. Now, when we add these together, what will the result be? Well, it comes out as a 12. And notice it's not the number 12. It's a string. And so what JavaScript did is it noticed that you are trying to combine a string and a number using the plus operator, the concatenation operator, depending on what type of value you are working with.

It has to determine what to do because it is dynamically typed. It determines Well, I need to make a best guess and see what needs to be done. In other languages, this would just produce an air not JavaScript and that can sometimes cause problems. So what it did is it converted or forced the number from the type of number to the type of string, and then I concatenated the two together. And that's why we end up with a 12. Now, why is this concept important?

Well, it's important because you may be required to the bug in issue that could be caused by coercion. So this is an element of the JavaScript language that the the dynamically typed variable allows JavaScript or helps JavaScript to make it easier to learn. However, it can also cause problems. And so understanding that about the language can help you solve problems when you're trying to debug code.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.