document_title: England at the FIFA World Cup

question_text: when was the last time england were in the quarterfinals of the world cup

question_tokens: when was the last time england were in the quarterfinals of the world cup

text: England at the FIFA World Cup

text: History[edit]

text: Brazil 1950[edit]

text: England's first qualifying campaign for the FIFA World Cup doubled as the 1950 British Home Championship. The series kicked off for England on 15 October 1949 at Ninian Park, Cardiff, against Wales. Stan Mortensen gave England the lead after twenty two minutes, and just seven minutes later, Jackie Milburn doubled the lead. This was the first goal of Milburn's hat trick, which left England 4–0 up with 20 minutes to play. Mal Griffiths scored a consolation goal for Wales ten minutes from time, but England held on for a comfortable victory.

text: A month later, England welcomed Ireland to Maine Road, and it began well for the home side as Jack Rowley scored inside six minutes. England were already 6–0 up, thanks to Jack Froggatt, two for Stan Pearson, Stan Mortensen and a second from Rowley, by the time Ireland struck back through Samuel Smyth after 55 minutes. Rowley added a third and a fourth to his tally in the three minutes following Smyth's goal, however, leaving the score at 8–1 at the hour mark. The frantic scoring rate calmed down after that, with only one apeice before the final whistle, with Stan Pearson completing his brace for England's ninth, and Bobby Brennan scoring for Ireland.

text: It was not until May 1950 that England travelled to Hampden Park to face Scotland, who were also undefeated after their games against Ireland and Wales. With the top two from the group qualifying, both teams were guaranteed progression to the finals, and the game was solely for the honour of winning the British Home Championship, and the seeding advantage to be enjoyed upon reaching Brazil. A solitary goal from Roy Bentley gave England the victory, the title and the top spot in the group.

text: 1950 Finals[edit]

text: England were seeded in pot one for the finals, which meant they were the favourites to progress from Group 2, which also contained Spain, Chile and the United States. England's campaign kicked off against Chile in Rio de Janeiro, and, as was expected, England cruised to a 2–0 victory, courtesy of goals from Stan Mortensen and Wilf Mannion.[citation needed]

text: Their troubles began four days later when they faced the Americans in Belo Horizonte in what has become one of the most famous matches of all time. Joe Gaetjens scored the only goal of the match to give the United States an unlikely victory, which has gone down as one of the World Cup's greatest upsets. A myth arose that the English newspapers were so confident of an English victory that when the result was telegrammed back, they assumed a misprint and printed the score as 10–1 in England's favour. However, this has proven to be untrue.[5]

text: This left England in a sticky situation prior to their final match, against Spain in Rio. They needed to win, and for Chile to beat the United States to stand any chance of going through, and even then they would need the goal averages to fall in their favour. As it turned out, no such calculations were necessary, despite Chile's victory, as Spain's Zarra scored the only goal of the game, eliminating England from the competition.

text: Switzerland 1954[edit]

text: This section does not cite any sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged and removed. (July 2018) (Learn how and when to remove this template message)

text: As with their first World Cup, England's qualifying for the 1954 edition also constituted the 1953–54 British Home Championship. They played Wales at Ninian Park as their first match once again, and the 4–1 result was the same. However, unlike four years earlier, it was the home side that went into the lead, after twenty two minutes through Ivor Allchurch. Despite being 1–0 down at half time, England scored four within eight minutes of the restart; two each for Dennis Wilshaw and Nat Lofthouse.

text: Goodison Park was the venue for England's home clash against Ireland, who were newly renamed Northern Ireland. Harold Hassall got England off to a good start with a goal after just ten minutes. Eddie McMorran put the Irish back on terms just before the hour mark, but Hassall completed his brace six minutes later. Lofthouse completed a comfortable 3–1 win for England.

text: With the top two in the group qualifying for the finals, the final game between England and Scotland, at Hampden Park, settled nothing except the placings within the group, despite Scotland having dropped a point with a 3–3 draw at home to Wales. Allan Brown put the home side ahead after just seven minutes, but it was all square again thanks to Ivor Broadis just four minutes later. Johnny Nicholls gave England the lead for the first time just after half time, and they began to extend a lead after Ronnie Allen's 68th-minute goal. Jimmy Mullen made the game all but certain seven minutes from time, and although Willie Ormond scored a consolation for Scotland with just 1 minute to play, England topped the competition for the second time in a row.

text: 1954 Finals[edit]

text: England were drawn in Group 4 for the finals, with hosts Switzerland, Italy and Belgium. In an odd twist, unique to the 1954 tournament, England and Italy, as the two seeded teams in the group, did not have to play each other.

text: Equally, Switzerland and Belgium did not have to play each other. England's first game in Switzerland was against Belgium in Basel, and they suffered a shock as Léopold Anoul put the Belgians into the lead after just five minutes. Ivor Broadis put the favourites back on terms just over twenty minutes later, and although Nat Lofthouse gave England the lead 10 minutes later, it was proving to be tougher than they had expected against the Belgians.

text: Broadis scored his second just after the hour, but Henri Coppens hit back four minutes later to keep Belgium in the game at only 3–2 down. Anoul completed his brace another four minutes after that to level the scores again. In another oddity peculiar to this World Cup, drawn matches in the group stage would go to extra time, and as such the teams played on with the score at 3–3.

text: Just one minute into the added period, Lofthouse added a fourth for England and they seemed to have won it, but Jimmy Dickinson scored an own goal three minutes later to put the score back at 4–4. It stayed this way until the extra period was up, and as penalty shoot-outs were yet to be invented and replays were not used in the group, the match was recorded as a draw.

text: England's second and final group game was against the hosts in Bern. This proved to be an easier game for the Three Lions, and they scored one goal in each half (from Jimmy Mullen and Dennis Wilshaw respectively) to give them a comfortable win of 2–0. As Switzerland (against England), Italy (against Switzerland) and Belgium (against Italy) had all lost one game, England progressed as group winners, along with Switzerland, who won a play-off against Italy.

text: England faced the winners of group three and defending champions Uruguay in the quarter-finals. Carlos Borges gave the South Americans the lead inside 5 minutes, but Lofthouse put England back on terms ten minutes later. England were clearly struggling, but held on until just before half time, when Obdulio Varela gave the lead back Uruguay.

text: Juan Alberto Schiaffino doubled the lead just after the break, but Tom Finney kept England's foot in the door with his sixty seventh-minute goal. However, it was all over after Javier Ambrois restored the two goal lead with twelve minutes to play. The score remained at 4–2, and England were eliminated from the cup.

text: Sweden 1958[edit]

text: For the first time, England had to play against countries other than the Home Nations to reach the Finals in Sweden. They were drawn against the Republic of Ireland and Denmark. In the qualifying round, England won three out of the four games and drew the other. Four months before the World Cup, Roger Byrne, Duncan Edwards, David Pegg and Tommy Taylor all lost their lives in the Munich air disaster while playing for Manchester United. At the finals, which is the only tournament to have seen all Home Nations take part, the Home Nations were all drawn in different groups.

text: England were drawn against the Soviet Union (2–2), Brazil (0–0) and Austria (2–2), who finished third in the 1954 World Cup. At the end of the group stage, Soviet Union and England each had three points, and had scored four goals and conceded four goals. This meant there was a play-off to decide the second-placed team in the group, the winner to qualify. England lost the play-off 1–0 and were thus knocked out. The only consolation for England was that they were the only team to play the eventual winners Brazil and not lose.

text: Chile 1962[edit]

text: The third World Cup which took place in South America, saw England qualify by successfully qualifying from the group, which contained Portugal and Luxembourg, defeating Luxembourg on both occasions, and defeating Portugal at home, and drawing in Lisbon.

text: At the finals, England were drawn in a group with Hungary, Argentina and Bulgaria. England defeated Argentina 3-1, thanks to goals from Ron Flowers, Bobby Charlton and Jimmy Greaves,[6] before playing out a goalless draw with Bulgaria, and a 2–1 defeat to Hungary.[7]

text: England finished in second place behind Hungary and played the winners of group 3, defending champions Brazil, in the quarter-finals. Brazil scored first through Garrincha, before an equaliser for Gerry Hitchens before half time. However, second-half goals from Garrincha and Vavá meant Brazil won the game 3–1, and eliminated England from the competition.[8] This defeat was manager Walter Winterbottom's last game in charge. Winterbottom had led England to four World Cup Finals. From May 1963, Alf Ramsey became the manager of England.

text: England 1966[edit]

text: This section needs expansion. You can help by adding to it. (July 2018)

text: In the 1966 World Cup Finals, England used their home advantage and, under Ramsey, won their first, and only, World Cup title. England played all their games at Wembley Stadium in London, which became the last time that the hosts were granted this privilege. After drawing 0–0 in the opening game against former champions Uruguay, which started a run of four games all ending goalless. England then beat both France and Mexico 2–0 and qualified for the quarter-finals.[citation needed]

text: The quarter-finals saw England play Argentina, which ended in a 1–0 win to England. This match saw the start of the rivalry between England and Argentina, when Argentinian Antonio Rattín was dismissed by German referee Rudolf Kreitlein in a very fierce game. A 2–1 win against Portugal in the semi-final then followed. Portugal were the first team to score against England in the tournament. The final saw England play West Germany, with the result finishing in a 4–2 win for England, after extra time.[citation needed]

text: Mexico 1970[edit]

text: 1970 saw the first World Cup finals take place in North America and England qualified automatically for the tournament by winning the 1966 FIFA World Cup. England were drawn in a group with Romania, former world champions Brazil and Czechoslovakia. Each of the matches only saw one goal, with England defeating Romania and Czechoslovakia, and losing to Brazil. The quarter-final saw a repeat of the 1966 final, with England playing West Germany. England were hampered by the fact that first-choice goalkeeper Gordon Banks was ill, and Peter Bonetti played instead. England led 2–0 with goals by Alan Mullery and Martin Peters, but in the 70th minute, Franz Beckenbauer pulled one goal back for West Germany.

text: After Beckenbauer's goal, Ramsey substituted Bobby Charlton, who overtook Billy Wright as England's most capped player ever, with caps totalling 106. Uwe Seeler equalised for the Germans in the eighty first minute, thereby taking the game into extra time. During extra time, Gerd Müller scored the winning goal for West Germany which saw the German side win 3–2. This turned out to be Charlton's last game for England.[9]

text: West Germany 1974[edit]

text: For the first time, England did not qualify for a World Cup. In a group with Olympic champions Poland and Wales, England could not overtake Poland. After only drawing at home to Wales 1–1 and losing the first leg 2–0 to Poland, meant that England had to beat Poland at home, whilst Poland only needed to draw. Poland managed to withstand England's attacks in the first half, who had Martin Peters playing for them. Poland took the lead in the 57th minute with a goal from Jan Domarski.

text: England equalised six minutes later, with a penalty converted by Allan Clarke. England were unable to score any more goals with goalkeeper Jan Tomaszewski keeping England at bay. Brian Clough had previously called Tomaszewski a "clown".[10] The commentator of the game then said "it's all over".[11] Poland took this good form to the finals and ended in third place. After failing to qualify, Alf Ramsey resigned from his post and after a time, where Ramsey and his predecessor had lasted a total of 29 years, no manager was able to last in the job for longer than eight years. This ended when Bobby Robson became England manager.[12]

text: Argentina 1978[edit]

text: England also did not qualify for the fourth World Cup which took place in South America. This time, England were denied by Italy, who had scored three more goals than England after both teams finished on the same points. Goals scored dictated who qualified after the head-to-head record between the two sides finished the same, following a 2–0 home win for each team. The lower-ranked teams in the group were Finland and Luxembourg, but the size of the wins against them proved to be decisive. Nevertheless, Ron Greenwood was given a second chance in charge of England, after taking the role in 1977.

text: Spain 1982[edit]

text: 1982 saw the first time where the European Qualifying Rounds were divided into groups of five teams, where the top two teams qualify for the World Cup. Greenwood used his second chance and took England to Spain by finishing second behind Hungary and above Romania, Switzerland and Norway.

text: At the finals, England won all three group games, defeating France 3-1, with a brace from Bryan Robson,[13] before beating Czechoslovakia 2–0, with a Jozef Barmos own goal, [14] and World Cup newcomers Kuwait 1–0, thanks to a Trevor Francis goal.[15]

text: The next round saw a second group stage consisting of three teams, a first time event at the World Cup. England drew with West Germany 0–0 and after the Germans beat Spain 2–1, England then had to beat Spain with a two-goal difference to progress to the next round. England, however, only managed a 0–0 draw against the Spanish. England remained unbeaten at the end of the tournament. After the World Cup, Ron Greenwood's time as England manager ended, and he was replaced by Bobby Robson.

text: Mexico 1986[edit]

text: 1986 saw the second World Cup to take place in Mexico. England qualified for Mexico 1986 by winning four games and drawing four times against Northern Ireland, who qualified in second place, Romania, Finland and Turkey. In Mexico, England lost their opening game to Portugal 1–0 and could only manage a goalless draw against Morocco. The final group game, however, saw England beat Poland 3–0, which is one of the three highest scores for England at the World Cup, with Gary Lineker scoring a hat-trick.

text: This result took England to second place and finished behind Morocco. England then also beat Paraguay 3–0 in the Round of 16. In the quarter-finals, England renewed their rivalry with Argentina in a game that has become notorious for the Argentina goals, both scored by Diego Maradona. Maradona's first goal, known as the Hand of God, was illegal and should not have counted, as he used his hand to punch the ball into the net. However, the referee missed this infringement, and ruled that the goal should stand. Maradona then made the score 2-0, famously dribbling from inside Argentina's half and around several English players before scoring. Gary Lineker pulled back the score to 2-1, but England ran out of time to equalise, and were eliminated. Nevertheless, Lineker finished with the Golden Boot by scoring six goals and thereby becoming England's first Golden Boot winner.

text: Italy 1990[edit]

text: By winning three and drawing three, England qualified for Italia '90, the second World Cup to be held in Italy, scoring ten goals and conceding none. England were unbeaten through qualification, winning three games, and drawing the remaining three, but still finished second to Sweden, whom they drew with twice.[16] England profited from Romania's 3–1 win over Denmark, who, had they won, would have qualified as the third-best second-placed team. West Germany and England were able to qualify for Italia '90 as the best second-placed teams in the groups with four teams.

text: Because a few years previously saw English hooligans at European competition matches, England were forced to play their group games on Sardinia and Sicily. In group F, was the European champions Netherlands, the Republic of Ireland and Egypt and England. After opening the tournament with a 1–1 draw against Ireland and a 0–0 draw against the Dutch, England then beat Egypt 1–0. This was Egypt's first appearance since the 1934 World Cup.[citation needed] England won the group with four points.[17]

text: In the next round, England had to play Belgium. The game went to extra time, and in the hundredth and nineteenth minute, David Platt scored the winning goal.[18] England also had to play extra time against Cameroon in the quarter-finals. Cameroon were the first African team to have reached the quarter-finals. England opened the scoring through David Platt, but Cameroon quickly turned around the game to lead 2-1. Lineker subsequently won and scored a penalty in the 83rd minute to ensure the game went to extra time. He then scored a second penalty, to see England reach the semi-finals.[19]

text: In the semi-finals, England met West Germany. There was no separating the two teams after 90 minutes, which made England the first team to have played extra time in three successive World Cup games. There was also no separating the two teams after extra time, thereby taking the game to penalties.[20]

text: Although English goalkeeper Peter Shilton dived the right way for every penalty, he was unable to save any. German goalkeeper Bodo Illgner, having failed to save any of England's first three penalties, saved England's fourth penalty, taken by Stuart Pearce. Olaf Thon then scored for Germany, meaning that England's Chris Waddle would have to score his fifth penalty and hope that Shilton saved the Germans' fifth penalty. However, Waddle's penalty missed completely, going high over the crossbar, thereby resulting in England's being knocked out of the competition.[20] The third-place playoff between England and Italy saw England lose their only game of the tournament in normal time. Even though this was England's best finish since the 1966 World Cup, Bobby Robson's time as England manager had come to an end.[21][22]

text: United States 1994[edit]

text: For the 1994 World Cup in the United States, under the leadership of new manager Graham Taylor, England surprisingly did not qualify for the tournament. In a group with six teams, England lost to Norway and the Netherlands, finishing third above Poland, Turkey and San Marino.

text: England went into their final game with San Marino knowing they would need a seven-goal victory and for Poland to beat the Netherlands in the other match in order to qualify.[23] In the game against San Marino, Davide Gualtieri scored against England after nine seconds, taking the lead for the outsiders. England went on to win 7–1, which was too small a goal margin. Additionally, despite the half-time score between the Poles and the Dutch being 1-1, the Dutch went on to win 3-1, meaning that however many goals England scored, they could still not qualify. Taylor's tenure in charge ended and he was replaced by Terry Venables, who was dismissed after England lost the semi-final of Euro 1996, hosted in England.[12]

text: France 1998[edit]

text: After missing out on the World Cup in 1994, England, managed by Glenn Hoddle, qualified for the World Cup in France. England were drawn in Group 2 of UEFA qualifying with Italy, Poland, Georgia and Moldova. England beat Poland, Georgia and Moldova both home and away, but a home defeat to Italy in their fourth match meant they went into the final qualifier at the Stadio Olimpico in Rome just a point ahead of the Azzurri and only needing a draw to qualify automatically; defeat would see them have to navigate a play-off to secure qualification. The match finished as a goalless draw and England finished top of the group.

text: At the finals in France, England played in Group G. England defeated Tunisia 2–0 in the first game, with goals from Alan Shearer and Paul Scholes.[24] Their second match saw England lose 2–1 to Romania; despite an 81st-minute equaliser from Michael Owen, Dan Petrescu scored a winner shortly before injury time. In their final group game, England defeated Colombia 2–0 in the decisive match, thanks to goals from midfielders Darren Anderton and David Beckham.[25] England finished second in Group G, which saw them qualify for the last 16 phase, and play the winner of 1998 FIFA World Cup Group H, Argentina.

text: In a fiery game containing six yellow cards and two penalties, David Beckham was controversially sent off in the 47th minute for what many felt was at most a yellow card offence, knocking over Diego Simeone.[26][27] Gabriel Batistuta opened the scoring from the penalty spot in the fifth minute of the game, before an equaliser also from the spot by Alan Shearer four minutes later. England took the lead through Owen, in the 16th minute. Argentina drew level through Javier Zanetti in injury time of the first half.

text: The game finished 2-2, and, as neither team were able to find a winner in extra time, penalties were needed to decide the team that qualified to the next round. While David Seaman did save one penalty, Argentine goalkeeper Carlos Roa managed to save two, including the vital one from David Batty, thereby knocking England out of the World Cup. Beckham subsequently received death threats and was sent bullets in the post.[28][29]

text: South Korea/Japan 2002[edit]

text: In 2002 the World Cup took place in Asia for the first time. England, under its first ever foreign manager in Swedish Sven-Göran Eriksson, were able to qualify for the tournament. England were drawn in Group 9, alongside Germany, Finland, Greece and Albania. In the last ever game in the original Wembley Stadium, (which closed after the match) England played Germany, losing 1–0, the only goal scored by Dietmar Hamann. The match was the last under the management of Kevin Keegan, who resigned at the end of the match, and was replaced by Eriksson.[30] By beating Germany 5–1 in Munich, England's qualifying campaign was revitalised, and they qualified automatically, by drawing 2–2 with Greece. Germany, who could only draw 0–0 with Finland, had to play a play-off game against Ukraine, with England qualifying ahead winning the group.

text: In Japan, England had to play against Eriksson's homeland, Sweden, and both settled out for a 1–1 draw. England and Beckham gained a measure of revenge for their previous 1998 defeat in defeating Argentina 1-0, thanks to a Beckham penalty. However, England could only manage a disappointing 0-0 draw against Nigeria, meaning that although they were able to qualify for the second round, where they played Denmark, they qualified as runners up, which meant that they would meet favourites Brazil in the quarter-finals if they qualified.

text: England played Denmark in the round of 16 defeating Denmark 3–0, thanks to goals from Micheal Owen, Rio Ferdinand, and Emile Heskey.[31] England played four-time World Cup winners and 1998 runners-up Brazil in the quarter-finals. Despite leading through a Michael Owen goal, a mistake by David Seaman saw England lose 2–1, and Brazil won their fourth World Cup match against England, and went on to win the tournament.[32]

text: Germany 2006[edit]

text: England were drawn into Group 6 of European qualifying for the 2006 World Cup. The group featured other home nations in Wales, and Northern Ireland, as well as Poland (who had eliminated England the last time the World Cup took place in Germany), Azerbaijan and Austria. England won eight of the 10 games, and qualified as group winners, in front of Portugal, despite drawing to Austria in Vienna, and losing to Northern Ireland in Belfast.[33]

text: In Germany, however, England were less convincing. England played in Group B, alongside Paraguay, Trinidad and Tobago, and Sweden. England started with a 1–0 win against Paraguay; which was won due to a 3rd minute own goal.[34] The second game against first time qualifiers Trinidad and Tobago saw England have to wait until the 83rd minute for England to take the lead, with Peter Crouch opened the scoring with a goal many felt was illegal, and the second goal of the game coming in added time from Steven Gerrard.[35][36] The last group game saw England play against Sweden, where an eventual 2-2 draw saw them qualify for the next round as group winners, thereby avoiding playing hosts Germany.[37]

text: In the last 16 stage, a free kick from David Beckham saw England win 1–0 against Ecuador and reach the quarter-finals, where they faced Portugal.[38] The game finished goalless, and England once again were knocked out on penalties and Portuguese goalkeeper Ricardo became the first goalkeeper to save three penalties in a penalty shoot-out. Ricardo saved from Frank Lampard, Steven Gerrard, and Jamie Carragher; the only England player who successfully converted his penalty was Owen Hargreaves. Portugal won the shoot-out 3-1, despite misses from Petit and Hugo Viana. This game was also Erickson's final match as England manager.[39]

text: South Africa 2010[edit]

text: Qualification for the first African World Cup went successfully for new England manager Fabio Capello, after previous manager Steve McClaren was unable to secure qualification to the Euro 2008. By winning nine times and only losing to Ukraine, England qualified ahead of Croatia, Belarus, Kazakhstan and Andorra. England's group was seen as a favourable one, containing comparatively much weaker teams.[40] However, England opened up their campaign with a 1–1 draw against the United States, thanks to a major error by goalkeeper Robert Green. They then drew 0–0 against Algeria and were booed off the field by their own fans, drawing the ire of striker Wayne Rooney.[41] England eventually qualified for the next round by beating Slovenia 1–0, but only qualified as runners up to the United States, thereby meaning they would draw favourites Germany.

text: In the second round match, Germany took the lead after 20 minutes after goalkeeper Manuel Neuer played the ball down the pitch to Miroslav Klose, who opened the scoring. The score became 2–0 to Germany after 32 minutes. Shortly after, England defender Matthew Upson scored a header. Later, Frank Lampard had a shot at goal which was disallowed despite crossing the line; which was confirmed on replays. German goalkeeper Manuel Neuer admitted subsequently he knew the ball had crossed the line, but decided to deceive the referee.[42] The German media reported it was "revenge for Wembley", while the English media criticised FIFA's refusal to implement goal-line technology. Ironically, despite his earlier opposition to goal-line technology, Sepp Blatter said that it should be introduced after a Ukrainian goal against England at Euro 2012 was ruled out.[43][42][44] As England tried to equalise, Germany used this to their advantage and scored two more goals. This became Germany's biggest win against England in a World Cup, winning 4-1.[45]

text: Brazil 2014[edit]

text: Under Roy Hodgson, who replaced Fabio Capello after Euro 2012 after a disagreement between Capello and The FA, England qualified for the second World Cup to be held in Brazil. Ukraine were again one of the opponents in the qualifying rounds. The other opponents included Montenegro, Poland, Moldova and San Marino. After winning six games and drawing four, England qualified unbeaten.[46]

text: The draw for the finals saw England have to play against Italy and Uruguay, both former world champions, which meant that it was the first ever time three World Champions were drawn in the same group, along with Costa Rica. England lost to Italy and Uruguay, and were thus knocked out after two games. The final match against Costa Rica finished as a goalless draw. This performance was statistically their worst ever performance at a World Cup, ending up with just one point after two losses to Uruguay and Italy and a goalless draw with Costa Rica in the dead rubber match, their lowest points total in the group stage of a world cup.[46]

text: Russia 2018[edit]

text: England played in UEFA Group F in qualification for the 2018 World Cup, in a group of six with Slovakia, Slovenia, Scotland, Lithuania and Malta, with only the winner of the group guaranteed qualification. England went into the qualification process under manager Sam Allardyce, only for Allardyce to leave the post after just one game due to controversy regarding discussing breaking FIFA rules.[47]

text: Under Allardyce's replacement, Gareth Southgate, England went undefeated throughout qualification, winning eight matches out of 10, drawing with Slovenia 0–0 in Ljubljana, and drawing 2–2 with Scotland in Glasgow thanks to a 90th-minute equaliser from Harry Kane.[48] This was the third successive major tournament that England were undefeated, having been undefeated in 2014 World Cup, and Euro 2016 qualifying.

text: 2018 Finals[edit]

text: Under Gareth Southgate, the England team began their tournament in group G against Tunisia. The game started well for England with a goal from Harry Kane in the 11th minute. Tunisia equalised through Sassi from the penalty spot in the 35th minute following a foul by Kyle Walker. Some controversy followed as various potential offences against Harry Kane, inside the penalty area were ignored by the referee and no VAR checks were carried out. England persevered and scored a second goal in the 91st minute, again by Harry Kane, resulting in a 2–1 victory.[49]

text: In the second group stage match, England surpassed their record for goals scored in a World Cup match by beating Panama 6-1. Jesse Lingard scored the third goal, John Stones scored the first and fourth goals and Harry Kane scored a hat-trick with the second, fifth and sixth goals.[50]

text: In the final group stage match, England narrowly lost 1-0 to Belgium. Adnan Januzaj scored the sole goal of the game; but with both teams having fielded reserve teams, with England specificially making 9 changes. Before the game media outlets stating that a loss could potentially become beneficial, as the winner would be in the half of the draw with four of the top seven sides in the world.[c][51][52] The result that meant Belgium topped the group and England finished second, setting up a last 16 clash with Group H winners Colombia.[53][54]

text: England played their last 16 match in the Otkritie Arena, Moscow, with the same team as against Tunisia. Harry Kane scored his sixth goal of the tournament, and the third penalty, after once again being fouled in the box from a corner, similarly as against Panama.[55] The score remained at 1-0, until stoppage time, where a header from Yerry Mina beat Jordan Pickford in goal to bring the game to extra time. Neither team managed to score in extra time, and the match went to penalties, which England won 4-3.[56] As well as being the first knockout match England had won at a major tournament since 2006 (last defeating Ecuador in the last 16); it was the first time England won a World Cup penalty shoot-out.[d][58] The match was notable for the heated atmosphere the game was played in, with a total of eight yellow cards being shown in the match.[e][59]

text: England played against Sweden in their quarter-final at Cosmos Arena, Samara on 7 July 2018.[57] They won the match 2–0, with defender Harry Maguire scoring his first England goal, a header scored from a corner, and Dele Alli a second header from close range. This would send them through to their third World Cup semi-final and their first since 1990, and third overall.[60] The team played Croatia in the semi-final, resulting in a 2–1 loss after extra time.[61] England would later finish fourth in the competition, the best result since 1990. England would lose again to Belgium in the 3rd place playoff, thanks to goals from Thomas Meunier and Eden Hazard, despite a Eric Dier shot being cleared off the line by Toby Alderweireld.[62]

text: The tournament would see England score nine goals from set-pieces – the most by a team in a single World Cup tournament since 1966.[63]

text: Records[edit]

text:
Year
Round
Position
GP
W
D*
L
GF
GA
GD

 1930
Not a FIFA member

 1934

 1938

 1950
Group stage
8th
3
1
0
2
2
2
0

 1954
Quarter-finals
7th
3
1
1
1
8
8
0

 1958
Group stage
11th
4
0
3
1
4
5
-1

 1962
Quarter-finals
8th
4
1
1
2
5
6
-1

 1966
Champions
1st
6
5
1
0
11
3
8

 1970
Quarter-finals
8th
4
2
0
2
4
4
0

 1974
Did not qualify

 1978

 1982
Second group stage
6th
5
3
2
0
6
1
5

 1986
Quarter-finals
8th
5
2
1
2
7
3
4

 1990
Semi finals
4th
7
3
3
1
8
6
2

 1994
Did not qualify

 1998
Round of 16
9th
4
2
1
1
7
4
3

  2002
Quarter-finals
6th
5
2
2
1
6
3
3

 2006
Quarter-finals
7th
5
3
2
0
6
2
4

 2010
Round of 16
13th
4
1
2
1
3
5
-2

 2014
Group stage
26th
3
0
1
2
2
4
-2

 2018
Semi-finals
4th
7
3
1
3
12
8
4

 2022
TBD

   2026

Total
15/21
1 title
69
29
21
19
91
64
27

text: By match[edit]

text:
Year

Round

Against

Score

Scorers

 1950
Group 2
 Chile
2–0
Mortensen, Mannion

 United States
0–1

 Spain
0–1

 1954
Group 4
 Belgium
4–4 (aet)
Broadis (2), Lofthouse (2)

  Switzerland
2–0
Mullen, Wilshaw

Quarter-final
 Uruguay
2–4
Lofthouse, Finney

 1958
Group 4
 Soviet Union
2–2
Kevan, Finney

 Brazil
0–0

 Austria
2–2
Haynes, Kevan

Play-off
 Soviet Union
0–1

 1962
Group 4
 Hungary
1–2
Flowers

 Argentina
3–1
Flowers, Charlton, Greaves

 Bulgaria
0–0

Quarter-final
 Brazil
1–3
Hitchens

 1966
Group 1
 Uruguay
0–0

 Mexico
2–0
Charlton, Hunt

 France
2–0
Hunt (2)

Quarter-final
 Argentina
1–0
Hurst

Semi-final
 Portugal
2–1
Charlton (2)

Final
 West Germany
4–2 (aet)
Hurst (3), Peters

 1970
Group 3
 Romania
1–0
Hurst

 Brazil
0–1

 Czechoslovakia
1–0
Clarke

Quarter-final
 West Germany
2–3 (aet)
Mullery, Peters

 1982
Group 4
 France
3–1
Robson (2), Mariner

 Czechoslovakia
2–0
Francis, Barmoš (o.g.)

 Kuwait
1–0
Francis

Group B Round 2
 West Germany
0–0

 Spain
0–0

 1986
Group F
 Portugal
0–1

 Morocco
0–0

 Poland
3–0
Lineker (3)

Round of 16
 Paraguay
3–0
Lineker (2), Beardsley

Quarter-final
 Argentina
1–2
Lineker

 1990
Group F
 Republic of Ireland
1–1
Lineker

 Netherlands
0–0

 Egypt
1–0
Wright

Round of 16
 Belgium
1–0 (aet)
Platt

Quarter-final
 Cameroon
3–2 (aet)
Platt, Lineker (2)

Semi-final
 West Germany
1–1 (aet)[f]
Lineker

Third-place play-off
 Italy
1–2
Platt

 1998
Group G
 Tunisia
2–0
Shearer, Scholes

 Romania
1–2
Owen

 Colombia
2–0
Anderton, Beckham

Round of 16
 Argentina
2–2 (aet)[f]
Shearer, Owen

  2002
Group F
 Sweden
1–1
Campbell

 Argentina
1–0
Beckham

 Nigeria
0–0

Round of 16
 Denmark
3–0
Ferdinand, Owen, Heskey

Quarter-final
 Brazil
1–2
Owen

 2006
Group B
 Paraguay
1–0
Gamarra (o.g.)

 Trinidad and Tobago
2–0
Crouch, Gerrard

 Sweden
2–2
Cole, Gerrard

Round of 16
 Ecuador
1–0
Beckham

Quarter-final
 Portugal
0–0 (aet)[f]

 2010
Group C
 United States
1–1
Gerrard

 Algeria
0–0

 Slovenia
1–0
Defoe

Round of 16
 Germany
1–4
Upson

 2014
Group D
 Italy
1–2
Sturridge

 Uruguay
1–2
Rooney

 Costa Rica
0–0

 2018
Group G
 Tunisia
2–1
Kane (2)

 Panama
6–1
Stones (2), Kane (3), Lingard

 Belgium
0–1

Round of 16
 Colombia
1–1 (aet)[g]
Kane

Quarter-final
 Sweden
2–0
Maguire, Alli

Semi-final
 Croatia
1–2 (aet)
Trippier

Third-place play-off
 Belgium
0–2

text: By opponent[edit]

text:
Country

Played

Won

Drawn

Lost

GF

GA

GD

 Argentina
5
3
1
1
8
5
+3

 Germany
5
1
2
2
8
10
-2

 Brazil
4
0
1
3
2
6
-4

 Sweden
3
1
2
0
5
3
+2

 Belgium
4
1
1
2
5
7
-2

 Portugal
3
1
1
1
2
2
0

 Uruguay
3
0
1
2
3
6
-3

 France
2
2
0
0
5
1
+4

 Paraguay
2
2
0
0
4
0
+4

 Tunisia
2
2
0
0
4
1
+3

 Czechoslovakia
2
2
0
0
3
0
+3

 Colombia
2
1
1
0
3
1
+2

 Romania
2
1
0
1
2
2
0

 Soviet Union
2
0
1
1
2
3
-1

 United States
2
0
1
1
1
2
-1

 Spain
2
0
1
1
0
1
-1

 Italy
2
0
0
2
2
4
-2

 Panama
1
1
0
0
6
1
+5

 Poland
1
1
0
0
3
0
+3

 Denmark
1
1
0
0
3
0
+3

 Chile
1
1
0
0
2
0
+2

  Switzerland
1
1
0
0
2
0
+2

 Mexico
1
1
0
0
2
0
+2

 Trinidad and Tobago
1
1
0
0
2
0
+2

 Cameroon
1
1
0
0
3
2
+1

 Kuwait
1
1
0
0
1
0
+1

 Egypt
1
1
0
0
1
0
+1

 Ecuador
1
1
0
0
1
0
+1

 Slovenia
1
1
0
0
0
0
+1

 Austria
1
0
1
0
2
2
0

 Republic of Ireland
1
0
1
0
1
1
0

 Bulgaria
1
0
1
0
0
0
0

 Morocco
1
0
1
0
0
0
0

 Netherlands
1
0
1
0
0
0
0

 Nigeria
1
0
1
0
0
0
0

 Algeria
1
0
1
0
0
0
0

 Costa Rica
1
0
1
0
0
0
0

 Hungary
1
0
0
1
1
2
-1

 Croatia
1
0
0
1
1
2
-1

text: Last update: 14 July 2018

text: Players' honours[edit]

text: List of England players with the most appearances at World Cups[edit]

text:
No.

Name

Matches

World Cups

1
Peter Shilton
17
1982, 1986, 1990

2

Terry Butcher
14
1982, 1986, 1990

Bobby Charlton
14
1958, 1962, 1966, 1970

Ashley Cole
14
2002, 2006, 2010

Bobby Moore
14
1962, 1966, 1970

6
David Beckham
13
1998, 2002, 2006

7

Steven Gerrard
12
2006, 2010, 2014

Gary Lineker
12
1986, 1990

Michael Owen
12
1998, 2002, 2006

10
Chris Waddle
11
1986, 1990

text: List of England top goalscorers at World Cups[edit]

text:
No.

Name

Goals

World Cups

1
Gary Lineker
10
1986 (6) and 1990 (4)

2
Harry Kane
6
2018

3
Geoff Hurst
5
1966 (4) and 1970 (1)

4

Bobby Charlton
4
1962 (1) and 1966 (3)

Michael Owen
4
1998 (2) and 2002 (2)

6

Nat Lofthouse
3
1954

Roger Hunt
3
1966

David Platt
3
1990

David Beckham
3
1998, 2002 and 2006

Steven Gerrard
3
2006 (2) and 2010

11
Nine players
2

text: Current as of 3 July 2018 after the match against Colombia

text: List of England goals by tournament[edit]

text:
World Cup

Goalscorer(s)

1950

Wilf Mannion, Stan Mortensen

1954

Nat Lofthouse (3), Ivor Broadis (2), Tom Finney, Jimmy Mullen, Dennis Wilshaw

1958

Derek Kevan (2), Tom Finney, Johnny Haynes

1962

Ron Flowers (2), Bobby Charlton, Jimmy Greaves, Gerry Hitchens

1966

Geoff Hurst (4), Roger Hunt (3), Bobby Charlton (3), Martin Peters

1970

Allan Clarke, Geoff Hurst, Alan Mullery, Martin Peters

1982

Trevor Francis (2), Bryan Robson (2), Paul Mariner, Own Goal

1986

Gary Lineker (6), Peter Beardsley

1990

Gary Lineker (4), David Platt (3), Mark Wright

1998

Michael Owen (2), Alan Shearer (2), Darren Anderton, David Beckham, Paul Scholes

2002

Michael Owen (2), David Beckham, Sol Campbell, Rio Ferdinand, Emile Heskey

2006

Steven Gerrard (2), David Beckham, Joe Cole, Peter Crouch, Own Goal

2010

Jermain Defoe, Steven Gerrard, Matthew Upson

2014

Wayne Rooney, Daniel Sturridge

2018

Harry Kane (6), John Stones (2), Jesse Lingard, Harry Maguire, Dele Alli, Kieran Trippier

text: List of England players playing abroad at a World Cup[edit]

text: Historically, very few English World Cup squad members were playing for a club in a foreign league at the time of their selection to the national squad.[64]

text:
Year

Number (Country)

Players (Apps)

1950–1958

0

1962

1 (Italy)

Gerry Hitchens (2)

1966–1970

0

1982

1 (West Germany)

Tony Woodcock (2)

1986

2 (Italy)

Mark Hateley (3), Ray Wilkins

1990

5 (4 in Scotland, 1 in France)

Terry Butcher (5), Trevor Steven (3), Gary Stevens (2), Chris Woods (0); Chris Waddle (7)

1998

0

2002

1 (Germany)

Owen Hargreaves (2)

2006

2 (1 Spain, 1 Germany)

David Beckham (5); Owen Hargreaves (4)

2010

0

2014

1 (Scotland)

Fraser Forster (0)

2018

0

text: Team awards and records[edit]

text: Team Awards

text:
World Champions 1966
FIFA Fair Play Trophy 1990
FIFA Fair Play Trophy 1998 (shared)

tag: ul

text: Individual Awards

text:
Golden Ball 1966: Bobby Charlton
Silver Ball 1966: Bobby Moore
Golden Boot 1986: Gary Lineker
Golden Boot 2018: Harry Kane
Bronze Boot 1966: Geoff Hurst
Golden Glove 1966: Gordon Banks
Best Young Player Award 1998: Michael Owen

text: Team Records

text:
Most penalty shoot-outs lost: 3 (shared with Italy and Spain)
Biggest World Cup victory: 6-1 vs Panama, 2018 Group Stage [65]

text: Individual Records

text:
Only hattrick in a final: Geoff Hurst (1966 v West Germany)
Oldest captain: Peter Shilton (age 40 years and 292 days, 1990 v Italy)
Most clean sheets: Peter Shilton (10, 1982-1990) (shared with Fabien Barthez)

text: Refereeing[edit]

text: Four FIFA World Cup finals were officiated by English referees, more than by any other football association. The first Englishman to officiate a final, George Reader, is also the oldest World Cup referee to date, as he was 53 years and 236 days old at the 1950 decisive match between Uruguay and Brazil. The other final referees are William Ling (1954), Jack Taylor (1974) and Howard Webb (2010).

text: Arthur Ellis, who was a linesman at the 1950 final, is part of an elite group of referees who has been called up for three consecutive World Cups (1950–1958).


document_title: JavaScript

question_text: why does javascript have java in its name

question_tokens: why does javascript have java in its name

root

text: JavaScript

text: History[edit]

text: Beginnings at Netscape[edit]

text: In 1993, the National Center for Supercomputing Applications (NCSA), a unit of the University of Illinois at Urbana-Champaign, released NCSA Mosaic, the first popular graphical Web browser, which played an important part in expanding the growth of the nascent World Wide Web. In 1994, a company called Mosaic Communications was founded in Mountain View, California and employed many of the original NCSA Mosaic authors to create Mosaic Netscape. However, it intentionally shared no code with NCSA Mosaic. The internal codename for the company's browser was Mozilla, which stood for "Mosaic killer", as the company's goal was to displace NCSA Mosaic as the world's number one web browser. The first version of the Web browser, Mosaic Netscape 0.9, was released in late 1994. Within four months it had already taken three-quarters of the browser market and became the main browser for the Internet in the 1990s. To avoid trademark ownership problems with the NCSA, the browser was subsequently renamed Netscape Navigator in the same year, and the company took the name Netscape Communications.

tag: p

text: Netscape Communications realized that the Web needed to become more dynamic. Marc Andreessen, the founder of the company believed that HTML needed a "glue language" that was easy to use by Web designers and part-time programmers to assemble components such as images and plugins, where the code could be written directly in the Web page markup. In 1995, the company recruited Brendan Eich with the goal of embedding the Scheme programming language into its Netscape Navigator. Before he could get started, Netscape Communications collaborated with Sun Microsystems to include in Netscape Navigator Sun's more static programming language Java, in fries to compete with Microsoft for user adoption of Web technologies and platforms.[8] Netscape Communications then decided that the scripting language they wanted to create would complement Java and should have a similar syntax, which excluded adopting other languages such as Perl, Python, TCL, or Scheme. To defend the idea of JavaScript against competing proposals, the company needed a prototype. Eich wrote one in 10 days, in May 1995.

text: Although it was developed under the name Mocha, the language was officially called LiveScript when it first shipped in beta releases of Netscape Navigator 2.0 in September 1995, but it was renamed JavaScript[2] when it was deployed in the Netscape Navigator 2.0 beta 3 in December.[9] The final choice of name caused confusion, giving the impression that the language was a spin-off of the Java programming language, and the choice has been characterized as a marketing ploy by Netscape to give JavaScript the cachet of what was then the hot new Web programming language.

text: There is a common misconception that JavaScript was influenced by an earlier Web page scripting language developed by Nombas named C-- (not to be confused with the later C-- created in 1997).[10][11] Brendan Eich, however, had never heard of C-- before he created LiveScript.[12] Nombas did pitch their embedded Web page scripting to Netscape, though Web page scripting was not a new concept, as shown by the ViolaWWW Web browser.[13] Nombas later switched to offering JavaScript instead of C-- in their ScriptEase product and was part of the TC39 group that standardized ECMAScript.[14]

text: Server-side JavaScript[edit]

text: In December 1995, soon after releasing JavaScript for browsers, Netscape introduced an implementation of the language for server-side scripting with Netscape Enterprise Server.[15]

text: Since the mid-2000s, additional server-side JavaScript implementations have been introduced, such as Node.js in 2009.[16]

text: Adoption by Microsoft[edit]

text: Microsoft script technologies including VBScript and JScript were released in 1996. JScript, a reverse-engineered implementation of Netscape's JavaScript, was part of Internet Explorer 3. JScript was also available for server-side scripting in Internet Information Server. Internet Explorer 3 also included Microsoft's first support for CSS and various extensions to HTML, but in each case the implementation was noticeably different to that found in Netscape Navigator at the time.[17][18] These differences made it difficult for designers and programmers to make a single website work well in both browsers, leading to the use of "best viewed in Netscape" and "best viewed in Internet Explorer" logos that characterized these early years of the browser wars.[19] JavaScript began to acquire a reputation for being one of the roadblocks to a cross-platform and standards-driven Web. Some developers took on the difficult task of trying to make their sites work in both major browsers, but many could not afford the time.[17] With the release of Internet Explorer 4, Microsoft introduced the concept of Dynamic HTML, but the differences in language implementations and the different and proprietary Document Object Models remained and were obstacles to widespread take-up of JavaScript on the Web.[17]

text: Standardization[edit]

text: In November 1996, Netscape submitted JavaScript to Ecma International to carve out a standard specification, which other browser vendors could then implement based on the work done at Netscape. This led to the official release of the language specification ECMAScript published in the first edition of the ECMA-262 standard in June 1997, with JavaScript being the most well known of the implementations. ActionScript and JScript are other well-known implementations of ECMAScript, with extensions.

text: The standards process continued in cycles, with the release of ECMAScript 2 in June 1998, which brings some modifications to conform to the ISO/IEC 16262 international standard. The release of ECMAScript 3 followed in December 1999, which is the baseline for modern day JavaScript. The original ECMAScript 4 work led by Waldemar Horwat (then at Netscape, now at Google) started in 2000 and at first, Microsoft seemed to participate and even implemented some of the proposals in their JScript .NET language.

text: Over time it was clear though that Microsoft had no intention of cooperating or implementing proper JavaScript in Internet Explorer, even though they had no competing proposal and they had a partial (and diverged at this point) implementation on the .NET server side. So by 2003, the original ECMAScript 4 work was mothballed.

text: The next major event was in 2005, with two major happenings in JavaScript's history. First, Brendan Eich and Mozilla rejoined Ecma International as a not-for-profit member and work started on ECMAScript for XML (E4X), the ECMA-357 standard, which came from ex-Microsoft employees at BEA Systems (originally acquired as Crossgain). This led to working jointly with Macromedia (later acquired by Adobe Systems), who were implementing E4X in ActionScript 3 (ActionScript 3 was a fork of original ECMAScript 4).

text: So, along with Macromedia, work restarted on ECMAScript 4 with the goal of standardizing what was in ActionScript 3. To this end, Adobe Systems released the ActionScript Virtual Machine 2, code named Tamarin, as an open source project. But Tamarin and ActionScript 3 were too different from web JavaScript to converge, as was realized by the parties in 2007 and 2008.

text: Alas, there was still turmoil between the various players; Douglas Crockford—then at Yahoo!—joined forces with Microsoft in 2007 to oppose ECMAScript 4, which led to the ECMAScript 3.1 effort. The development of ECMAScript 4 was never completed, but that work influenced subsequent versions.[20]

text: While all of this was happening, the open source and developer communities set to work to revolutionize what could be done with JavaScript. This community effort was sparked in 2005 when Jesse James Garrett released a white paper in which he coined the term Ajax, and described a set of technologies, of which JavaScript was the backbone, used to create web applications where data can be loaded in the background, avoiding the need for full page reloads and leading to more dynamic applications. This resulted in a renaissance period of JavaScript usage spearheaded by open source libraries and the communities that formed around them, with libraries such as Prototype, jQuery, Dojo Toolkit, MooTools, and others being released.

text: In July 2008, the disparate parties on either side came together in Oslo. This led to the eventual agreement in early 2009 to rename ECMAScript 3.1 to ECMAScript 5 and drive the language forward using an agenda that is known as Harmony. ECMAScript 5 was finally released in December 2009.

text: In June 2011, ECMAScript 5.1 was released to fully align with the third edition of the ISO/IEC 16262 international standard. ECMAScript 2015 was released in June 2015. ECMAScript 2016 was released in June 2016. The current version is ECMAScript 2017, released in June 2017.[21]

text: Later developments[edit]

text: JavaScript has become one of the most popular programming languages on the Web. Initially, however, many professional programmers denigrated the language because, among other reasons, its target audience consisted of Web authors and other such "amateurs".[22] The advent of Ajax returned JavaScript to the spotlight and brought more professional programming attention. The result was a proliferation of comprehensive frameworks and libraries, improved JavaScript programming practices, and increased usage of JavaScript outside Web browsers, as seen by the proliferation of server-side JavaScript platforms.

text: In January 2009, the CommonJS project was founded with the goal of specifying a common standard library mainly for JavaScript development outside the browser.[23]

text: With the rise of single-page applications and JavaScript-heavy sites, it is increasingly being used as a compile target for source-to-source compilers from both dynamic languages and static languages.

text: Trademark[edit]

text: "JavaScript" is a trademark of Oracle Corporation in the United States.[24] It is used under license for technology invented and implemented by Netscape Communications and current entities such as the Mozilla Foundation.[25]

text: Vanilla JavaScript[edit]

text: The terms Vanilla JavaScript and Vanilla JS refer to JavaScript not extended by any frameworks or additional libraries. Scripts written in Vanilla JS are plain JavaScript code.[citation needed]

text: Features[edit]

text: The following features are common to all conforming ECMAScript implementations, unless explicitly specified otherwise.

text: Universal support[edit]

text: All modern Web browsers support JavaScript with built-in interpreters.

text: Imperative and structured[edit]

text: JavaScript supports much of the structured programming syntax from C (e.g., if statements, while loops, switch statements, do while loops, etc.). One partial exception is scoping: JavaScript originally had only function scoping with var. ECMAScript 2015 added keywords let and const for block scoping, meaning JavaScript now has both function and block scoping. Like C, JavaScript makes a distinction between expressions and statements. One syntactic difference from C is automatic semicolon insertion, which allows the semicolons that would normally terminate statements to be omitted.[26]

text: Dynamic[edit]

text: Prototype-based (object-oriented)[edit]

text: JavaScript is almost entirely object-based. In JavaScript, an object is an associative array, augmented with a prototype (see below); each string key provides the name for an object property, and there are two syntactical ways to specify such a name: dot notation (obj.x = 10) and bracket notation (obj['x'] = 10). A property may be added, rebound, or deleted at run-time. Most properties of an object (and any property that belongs to an object's prototype inheritance chain) can be enumerated using a for...in loop.

text: JavaScript has a small number of built-in objects, including Function and Date.

text: Functional[edit]

text: A function is first-class; a function is considered to be an object. As such, a function may have properties and methods, such as .call() and .bind().[34] A nested function is a function defined within another function. It is created each time the outer function is invoked. In addition, each nested function forms a lexical closure: The lexical scope of the outer function (including any constant, local variable, or argument value) becomes part of the internal state of each inner function object, even after execution of the outer function concludes.[35] JavaScript also supports anonymous functions.

text: Delegative[edit]

text: JavaScript supports implicit and explicit delegation.

text: Miscellaneous[edit]

text: Vendor-specific extensions[edit]

text: JavaScript is officially managed by Mozilla Foundation, and new language features are added periodically. However, only some JavaScript engines support these new features:

text:
property getter and setter functions (supported by WebKit, Gecko, Opera,[42] ActionScript, and Rhino)[43]
conditional catch clauses
iterator protocol (adopted from Python)
shallow generators-coroutines (adopted from Python)
array comprehensions and generator expressions (adopted from Python)
proper block scope via the let keyword
array and object destructuring (limited form of pattern matching)
concise function expressions (function(args) expr)
ECMAScript for XML (E4X), an extension that adds native XML support to ECMAScript (unsupported in Firefox since version 21[44])

text: Syntax[edit]

text: Simple examples[edit]

text: Variables in JavaScript can be defined using the var keyword:[45]

text: Note the comments in the example above, both of which were preceded with two forward slashes.

text: There is no built-in I/O functionality in JavaScript; the run-time environment provides that. The ECMAScript specification in edition 5.1 mentions:[46]

text: … indeed, there are no provisions in this specification for input of external data or output of computed results.

text: However, most runtime environments have a console object[47] that can be used to print output. Here is a minimalist Hello World program in JavaScript:

text: A simple recursive function:

text: An anonymous function (or lambda):

text: In JavaScript, objects are created in the same way as functions, this is known as a function object.

text: Object example:

text: This example shows that, in JavaScript, function closures capture their non-local variables by reference.

text: Variadic function demonstration (arguments is a special variable):[48]

text: Immediately-invoked function expressions are often used to create modules, as before ECMAScript 2015 there was not built-in construct in the language. Modules allow gathering properties and methods in a namespace and making some of them private:

text: More advanced example[edit]

text: This sample code displays various JavaScript features.

text: The following output should be displayed in the browser window.

text: Use in Web pages[edit]

text: As of May 2017 94.5% of 10 million most popular web pages used JavaScript.[49] The most common use of JavaScript is to add client-side behavior to HTML pages, also known as Dynamic HTML (DHTML). Scripts are embedded in or included from HTML pages and interact with the Document Object Model (DOM) of the page. Some simple examples of this usage are:

text:
Loading new page content or submitting data to the server via Ajax without reloading the page (for example, a social network might allow the user to post status updates without leaving the page).
Animation of page elements, fading them in and out, resizing them, moving them, etc.
Interactive content, for example games, and playing audio and video.
Validating input values of a Web form to make sure that they are acceptable before being submitted to the server.
Transmitting information about the user's reading habits and browsing activities to various websites. Web pages frequently do this for Web analytics, ad tracking, personalization or other purposes.[50]

text: Because JavaScript code can run locally in a user's browser (rather than on a remote server), the browser can respond to user actions quickly, making an application more responsive. Furthermore, JavaScript code can detect user actions that HTML alone cannot, such as individual keystrokes. Applications such as Gmail take advantage of this: much of the user-interface logic is written in JavaScript, and JavaScript dispatches requests for information (such as the content of an e-mail message) to the server. The wider trend of Ajax programming similarly exploits this strength.

text: A JavaScript engine (also known as JavaScript interpreter or JavaScript implementation) is an interpreter that interprets JavaScript source code and executes the script accordingly. The first JavaScript engine was created by Brendan Eich at Netscape, for the Netscape Navigator Web browser. The engine, code-named SpiderMonkey, is implemented in C. It has since been updated (in JavaScript 1.5) to conform to ECMAScript 3. The Rhino engine, created primarily by Norris Boyd (formerly at Netscape, now at Google) is a JavaScript implementation in Java. Rhino, like SpiderMonkey, is ECMAScript 3 compliant.

text: A Web browser is by far the most common host environment for JavaScript. Web browsers typically create "host objects" to represent the DOM in JavaScript. The Web server is another common host environment. A JavaScript Web server would typically expose host objects representing HTTP request and response objects, which a JavaScript program could then interrogate and manipulate to dynamically generate Web pages.

text: Because JavaScript is the only language that the most popular browsers share support for, it has become a target language for many frameworks in other languages, even though JavaScript was never intended to be such a language.[51] Despite the performance limitations inherent to its dynamic nature, the increasing speed of JavaScript engines has made the language a surprisingly feasible compilation target.

text: Compatibility considerations[edit]

text: Because JavaScript runs in widely varying environments, an important part of testing and debugging is to test and verify that the JavaScript works across multiple browsers.

text: The DOM interfaces for manipulating Web pages are not part of the ECMAScript standard, or of JavaScript itself. Officially, the DOM interfaces are defined by a separate standardization effort by the W3C; in practice, browser implementations differ from the standards and from each other, and not all browsers execute JavaScript.

text: To deal with these differences, JavaScript authors can attempt to write standards-compliant code that will also be executed correctly by most browsers; failing that, they can write code that checks for the presence of certain browser features and behaves differently if they are not available.[52] In some cases, two browsers may both implement a feature but with different behavior, and authors may find it practical to detect what browser is running and change their script's behavior to match.[53][54] Programmers may also use libraries or toolkits that take browser differences into account.

text: Furthermore, scripts may not work for some users. For example, a user may:

text:
use an old or rare browser with incomplete or unusual DOM support;
use a PDA or mobile phone browser that cannot execute JavaScript;
have JavaScript execution disabled as a security precaution;
use a speech browser due to, for example, a visual disability.

text: To support these users, Web authors can try to create pages that degrade gracefully on user agents (browsers) that do not support the page's JavaScript. In particular, the page should remain usable albeit without the extra features that the JavaScript would have added. Some sites use the HTML <noscript> tag, which contains alt content if JS is disabled. An alternative approach that many find preferable is to first author content using basic technologies that work in all browsers, then enhance the content for users that have JavaScript enabled. This is known as progressive enhancement.

text: Security[edit]

text: JavaScript and the DOM provide the potential for malicious authors to deliver scripts to run on a client computer via the Web. Browser authors contain this risk using two restrictions. First, scripts run in a sandbox in which they can only perform Web-related actions, not general-purpose programming tasks like creating files. Second, scripts are constrained by the same-origin policy: scripts from one Web site do not have access to information such as usernames, passwords, or cookies sent to another site. Most JavaScript-related security bugs are breaches of either the same origin policy or the sandbox.

text: There are subsets of general JavaScript—ADsafe, Secure ECMAScript (SES)—that provide greater levels of security, especially on code created by third parties (such as advertisements).[55][56] Caja is another project for safe embedding and isolation of third-party JavaScript and HTML.

text: Content Security Policy is the main intended method of ensuring that only trusted code is executed on a Web page.

text: Cross-site vulnerabilities[edit]

text: A common JavaScript-related security problem is cross-site scripting (XSS), a violation of the same-origin policy. XSS vulnerabilities occur when an attacker is able to cause a target Web site, such as an online banking website, to include a malicious script in the webpage presented to a victim. The script in this example can then access the banking application with the privileges of the victim, potentially disclosing secret information or transferring money without the victim's authorization. A solution to XSS vulnerabilities is to use HTML escaping whenever displaying untrusted data.

text: Some browsers include partial protection against reflected XSS attacks, in which the attacker provides a URL including malicious script. However, even users of those browsers are vulnerable to other XSS attacks, such as those where the malicious code is stored in a database. Only correct design of Web applications on the server side can fully prevent XSS.

text: XSS vulnerabilities can also occur because of implementation mistakes by browser authors.[57]

text: Another cross-site vulnerability is cross-site request forgery (CSRF). In CSRF, code on an attacker's site tricks the victim's browser into taking actions the user didn't intend at a target site (like transferring money at a bank). It works because, if the target site relies only on cookies to authenticate requests, then requests initiated by code on the attacker's site will carry the same legitimate login credentials as requests initiated by the user. In general, the solution to CSRF is to require an authentication value in a hidden form field, and not only in the cookies, to authenticate any request that might have lasting effects. Checking the HTTP Referrer header can also help.

text: "JavaScript hijacking" is a type of CSRF attack in which a <script> tag on an attacker's site exploits a page on the victim's site that returns private information such as JSON or JavaScript. Possible solutions include:

text: requiring an authentication token in the POST and GET parameters for any response that returns private information.

text: Misplaced trust in the client[edit]

text: Developers of client-server applications must recognize that untrusted clients may be under the control of attackers. The application author cannot assume that his JavaScript code will run as intended (or at all) because any secret embedded in the code could be extracted by a determined adversary. Some implications are:

text:
Web site authors cannot perfectly conceal how their JavaScript operates because the raw source code must be sent to the client. The code can be obfuscated, but obfuscation can be reverse-engineered.
JavaScript form validation only provides convenience for users, not security. If a site verifies that the user agreed to its terms of service, or filters invalid characters out of fields that should only contain numbers, it must do so on the server, not only the client.
Scripts can be selectively disabled, so JavaScript can't be relied on to prevent operations such as right-clicking on an image to save it.[58]
It is extremely bad practice to embed sensitive information such as passwords in JavaScript because it can be extracted by an attacker.

text: Misplaced trust in developers[edit]

text: Package management systems such as NPM and Bower are popular with JavaScript developers. Such systems allow a developer to easily manage their program's dependencies upon other developer's program libraries. Developers trust that the maintainers of the libraries will keep it secure and up to date, but that is not always the case. A vulnerability has emerged because of this blind trust. Relied upon libraries can release an update that causes bugs or vulnerabilities to appear in all programs that rely upon the library. Inversely, a library can go unpatched with known vulnerabilities out in the wild. In a study done looking over a sample of 133k websites, researchers found 37% of the websites included a library with at-least one known vulnerability.[59] "The median lag between the oldest library version used on each website and the newest available version of that library is 1,177 days in ALEXA, and development of some libraries still in active use ceased years ago."[59] Another possibility is that the maintainer of a library may remove the library entirely. This occurred in March 2016 when Azer Koçulu removed his repository from NPM. This caused all tens of thousands of programs and websites depending upon his libraries to break.[60][61]

text: Browser and plugin coding errors[edit]

text: JavaScript provides an interface to a wide range of browser capabilities, some of which may have flaws such as buffer overflows. These flaws can allow attackers to write scripts that would run any code they wish on the user's system. This code is not by any means limited to another JavaScript application. For example, a buffer overrun exploit can allow an attacker to gain access to the operating system's API with superuser privileges.

text: These flaws have affected major browsers including Firefox,[62] Internet Explorer,[63] and Safari.[64]

text: Plugins, such as video players, Adobe Flash, and the wide range of ActiveX controls enabled by default in Microsoft Internet Explorer, may also have flaws exploitable via JavaScript (such flaws have been exploited in the past).[65][66]

text: In Windows Vista, Microsoft has attempted to contain the risks of bugs such as buffer overflows by running the Internet Explorer process with limited privileges.[67] Google Chrome similarly confines its page renderers to their own "sandbox".

text: Sandbox implementation errors[edit]

text: Web browsers are capable of running JavaScript outside the sandbox, with the privileges necessary to, for example, create or delete files. Of course, such privileges aren't meant to be granted to code from the Web.

text: Incorrectly granting privileges to JavaScript from the Web has played a role in vulnerabilities in both Internet Explorer[68] and Firefox.[69] In Windows XP Service Pack 2, Microsoft demoted JScript's privileges in Internet Explorer.[70]

text: Microsoft Windows allows JavaScript source files on a computer's hard drive to be launched as general-purpose, non-sandboxed programs (see: Windows Script Host). This makes JavaScript (like VBScript) a theoretically viable vector for a Trojan horse, although JavaScript Trojan horses are uncommon in practice.[71][not in citation given]

text: Hardware vulnerabilities[edit]

text: In 2017 a JavaScript based attack via browser was demonstrated that could bypass ASLR. It's called "ASLR⊕Cache" or AnC.[72][73]

text: Uses outside Web pages[edit]

text: In addition to Web browsers and servers, JavaScript interpreters are embedded in a number of tools. Each of these applications provides its own object model that provides access to the host environment. The core JavaScript language remains mostly the same in each application.

text: Embedded scripting language[edit]

text:
Google's Chrome extensions, Opera's extensions, Apple's Safari 5 extensions, Apple's Dashboard Widgets, Microsoft's Gadgets, Yahoo! Widgets, Google Desktop Gadgets, and Serence Klipfolio are implemented using JavaScript.
The MongoDB database accepts queries written in JavaScript. MongoDB and NodeJS are the core components of MEAN: a solution stack for creating Web applications using just JavaScript.
The Clusterpoint database accept queries written in JS/SQL, which is a combination of SQL and JavaScript. Clusterpoint has built-in computing engine that allows execution of JavaScript code right inside the distributed database.
Adobe's Acrobat and Adobe Reader support JavaScript in PDF files.[74]
Tools in the Adobe Creative Suite, including Photoshop, Illustrator, Dreamweaver, and InDesign, allow scripting through JavaScript.
OpenOffice.org, an office application suite, as well as its popular fork LibreOffice, allows JavaScript to be used as a scripting language.
The visual programming language Max, released by Cycling '74, offers a JavaScript model of its environment for use by developers. It allows users to reduce visual clutter by using an object for a task rather than many.
Apple's Logic Pro X digital audio workstation (DAW) software can create custom MIDI effects plugins using JavaScript.[75]
The Unity game engine supports a modified version of JavaScript for scripting via Mono.[76]
DX Studio (3D engine) uses the SpiderMonkey implementation of JavaScript for game and simulation logic.[77]
Maxwell Render (rendering software) provides an ECMA standard based scripting engine for tasks automation.[78]
Google Apps Script in Google Spreadsheets and Google Sites allows users to create custom formulas, automate repetitive tasks and also interact with other Google products such as Gmail.[79]
Many IRC clients, like ChatZilla or XChat, use JavaScript for their scripting abilities.[80][81]
RPG Maker MV uses JavaScript as its scripting language.[82]
The text editor UltraEdit uses JavaScript 1.7 as internal scripting language, introduced with version 13 in 2007.

text: Scripting engine[edit]

text:
Microsoft's Active Scripting technology supports JScript as a scripting language.[83]
Java introduced the javax.script package in version 6 that includes a JavaScript implementation based on Mozilla Rhino. Thus, Java applications can host scripts that access the application's variables and objects, much like Web browsers host scripts that access a webpage's Document Object Model (DOM).[84][85]
The Qt C++ toolkit includes a QtScript module to interpret JavaScript, analogous to Java's javax.script package.[86]
OS X Yosemite introduced JavaScript for Automation (JXA), which is built upon JavaScriptCore and the Open Scripting Architecture. It features an Objective-C bridge that enables entire Cocoa applications to be programmed in JavaScript.
Late Night Software's JavaScript OSA (also known as JavaScript for OSA, or JSOSA) is a freeware alternative to AppleScript for OS X. It is based on the Mozilla JavaScript 1.5 implementation, with the addition of a MacOS object for interaction with the operating system and third-party applications.

text: Application platform[edit]

text:
ActionScript, the programming language used in Adobe Flash, is another implementation of the ECMAScript standard.
Adobe AIR (Adobe Integrated Runtime) is a JavaScript runtime that allows developers to create desktop applications.
Electron is an open-source framework developed by GitHub.
CA Technologies AutoShell cross-application scripting environment is built on the SpiderMonkey JavaScript engine. It contains preprocessor-like extensions for command definition, as well as custom classes for various system-related tasks like file I/O, operation system command invocation and redirection, and COM scripting.
Apache Cordova is a mobile application development framework
Cocos2d is an open source software framework. It can be used to build games, apps and other cross platform GUI based interactive programs
Chromium Embedded Framework (CEF) is an open source framework for embedding a web browser engine based on the Chromium core
RhoMobile Suite is a set of development tools for creating data-centric, cross-platform, native mobile consumer and enterprise applications.
NW.js call all Node.js modules directly from DOM and enable a new way of writing applications with all Web technologies.[87]
GNOME Shell, the shell for the GNOME 3 desktop environment,[88] made JavaScript its default programming language in 2013.[89]
The Mozilla application framework (XPFE) platform, which underlies Firefox, Thunderbird, and some other Web browsers, uses JavaScript to implement the graphical user interface (GUI) of its various products.
Qt Quick's markup language (available since Qt 4.7) uses JavaScript for its application logic. Its declarative syntax is also similar to JavaScript.
Ubuntu Touch provides a JavaScript API for its unified usability interface.
Open webOS is the next generation of web-centric platforms built to run on a wide range of form factors.[90]
enyo JS is a framework to develop apps for all major platforms, from phones and tablets to PCs and TVs[91]
WinJS provides a special Windows Library for JavaScript functionality in Windows 8 that enables the development of Modern style (formerly Metro style) applications in HTML5 and JavaScript.
NativeScript is an open-source framework to develop apps on the Apple iOS and Android platforms.
Weex is a framework for building Mobile cross-platform UI, created by China Tech giant Alibaba[92]
XULRunner is packaged version of the Mozilla platform to enable standalone desktop application development

text: Development tools[edit]

text: Within JavaScript, access to a debugger becomes invaluable when developing large, non-trivial programs. Because there can be implementation differences between the various browsers (particularly within the DOM), it is useful to have access to a debugger for each of the browsers that a Web application targets.[93]

text: Script debuggers are integrated within Internet Explorer, Firefox, Safari, Google Chrome, Opera and Node.js.[94][95][96]

text: In addition to the native Internet Explorer Developer Tools, three debuggers are available for Internet Explorer: Microsoft Visual Studio is the richest of the three, closely followed by Microsoft Script Editor (a component of Microsoft Office),[97] and finally the free Microsoft Script Debugger that is far more basic than the other two. The free Microsoft Visual Web Developer Express provides a limited version of the JavaScript debugging functionality in Microsoft Visual Studio. Internet Explorer has included developer tools since version 8.

text: In comparison to Internet Explorer, Firefox has a more comprehensive set of developer tools, which include a debugger as well. Old versions of Firefox without these tools used a Firefox addon called Firebug, or the older Venkman debugger. Also, WebKit's Web Inspector includes a JavaScript debugger,[98] which is used in Safari. A modified version called Blink DevTools is used in Google Chrome. Node.js has Node Inspector, an interactive debugger that integrates with the Blink DevTools, available in Google Chrome. Opera includes a set of tools called Dragonfly.[99]

text: In addition to the native computer software, there are online JavaScript IDEs, debugging aids that are themselves written in JavaScript and built to run on the Web. An example is the program JSLint, developed by Douglas Crockford who has written extensively on the language. JSLint scans JavaScript code for conformance to a set of standards and guidelines. Many libraries for JavaScript, such as three.js, provide links to demonstration code that can be edited by users. They are also used as a pedagogical tool by institutions such as Khan Academy[100] to allow students to experience writing code in an environment where they can see the output of their programs, without needing any setup beyond a Web browser.

text: Benchmark tools for developers[edit]

text: Since JavaScript is getting more important for web development (frontend overtakes many aspects which were done in backend before), there is also more consideration done about performance. Especially mobile devices could have problems with rendering and processing unoptimized complex logic.

text: A library for doing benchmarks is benchmark.js. A benchmarking library that supports high-resolution timers and returns statistically significant results[citation needed].

text: Another tool is jsben.ch. An online JavaScript benchmarking tool, where code snippets can be tested against each other.

text: Version history[edit]

text: JavaScript was initially developed in 1996 for use in the Netscape Navigator Web browser. In the same year Microsoft released an implementation for Internet Explorer. This implementation was called JScript due to trademark issues. In 1997 the first standardized version of the language was released under the name ECMAScript in the first edition of the ECMA-252 standard. The explicit versioning and opt-in of language features was Mozilla-specific and has been removed. Firefox 4 was the last version which referred to a JavaScript version (1.8.5). With new editions of the ECMA-262 standard, JavaScript language features are now often mentioned with their initial definition in the ECMA-262 editions.

text: The following table is based on information from multiple sources.[101][102][103]

text:
Version
Release date
Equivalent to
Netscape
Navigator
Mozilla
Firefox
Internet
Explorer
Opera
Safari
Google
Chrome

Old version, no longer supported: 1.0
March 1996

2.0

3.0

Old version, no longer supported: 1.1
August 1996

3.0

Old version, no longer supported: 1.2
June 1997

4.0-4.05

3

Old version, no longer supported: 1.3
October 1998
ECMA-262 1st + 2nd edition
4.06-4.7x

4.0
5[104]

Old version, no longer supported: 1.4

Netscape
Server

6

Old version, no longer supported: 1.5
November 2000
ECMA-262 3rd edition
6.0
1.0
5.5 (JScript 5.5),
6 (JScript 5.6),
7 (JScript 5.7),
8 (JScript 5.8)
7.0
3.0-5
1.0-10.0.666

Old version, no longer supported: 1.6
November 2005
1.5 + array extras + array and string generics + E4X

1.5

Old version, no longer supported: 1.7
October 2006
1.6 + Pythonic generators + iterators + let

2.0

28.0.1500.95

Old version, no longer supported: 1.8
June 2008
1.7 + generator expressions + expression closures

3.0

11.50

Old version, no longer supported: 1.8.1

1.8 + native JSON support + minor updates

3.5

Old version, no longer supported: 1.8.2
June 22, 2009
1.8.1 + minor updates

3.6

Old version, no longer supported: 1.8.5
July 27, 2010
1.8.2 + new features for ECMA-262 5th edition compliance

4.0

tag: table

text: Related languages and features[edit]

text: JSON, or JavaScript Object Notation, is a general-purpose data interchange format that is defined as a subset of JavaScript's object literal syntax. Like much of JavaScript (regexps and anonymous functions as 1st class elements, closures, flexible classes, 'use strict'), JSON, except for replacing Perl's key-value operator '=>' by an RFC 822[105] inspired ':', is syntactically pure Perl.

text: jQuery is a popular JavaScript library designed to simplify DOM-oriented client-side HTML scripting along with offering cross-browser compatibility because various browsers respond differently to certain vanilla JavaScript code.

text: Underscore.js is a utility JavaScript library for data manipulation that is used in both client-side and server-side network applications.

text: Angular and AngularJS are web application frameworks to use for developing single-page applications and also cross-platform mobile apps.

text: React (JavaScript library) is an open-source JavaScript library providing a views that is rendered using components specified as custom HTML tags.

text: Mozilla browsers currently support LiveConnect, a feature that allows JavaScript and Java to intercommunicate on the Web. However, Mozilla-specific support for LiveConnect was scheduled to be phased out in the future in favor of passing on the LiveConnect handling via NPAPI to the Java 1.6+ plug-in (not yet supported on the Mac as of March 2010[update]).[106] Most browser inspection tools, such as Firebug in Firefox, include JavaScript interpreters that can act on the visible page's DOM.

text: asm.js is a subset of JavaScript that can be run in any JavaScript engine or run faster in an ahead-of-time (AOT) compiling engine.[107]

text: JSFuck is an esoteric programming language. Programs are written using only six different characters, but are still valid JavaScript code.

text: p5.js[108] is an object oriented JavaScript library designed for artists and designers. It is based on the ideas of the Processing project but is for the web.

text: jsben.ch is an online JavaScript benchmarking tool, where different code snippets can be tested against each other.

text: CRISP: A Strategy guiding Cloud Application Development for Beginners is a strategy proposed by Ayush Sahu to develop optimized and secure JavaScript application to be used in mobiles, PC's and other devices. CRISP (Conversion, Reformat code, Isolate module, Sandbox, Partition) strategy has been proposed for refined conversion of native application to JavaScript for cloud application development. JavaScript is chosen as medium for writing application because it is mostly used language among developers and provides rich API (Application Programming Interface) for writing applications.[109]

text: Use as an intermediate language[edit]

text: As JavaScript is the most widely supported client-side language that can run within a Web browser, it has become an intermediate language for other languages to target. This has included both newly created languages and ports of existing languages. Some of these include:

text:
OberonScript, a full implementation of the Oberon programming language that compiles to high-level JavaScript.[110]
Objective-J, a superset of JavaScript that compiles to standard JavaScript. It adds traditional inheritance and Smalltalk/Objective-C style dynamic dispatch and optional pseudo-static typing to JavaScript.
Processing.js, a JavaScript port of the Processing programming language designed to write visualizations, images, and interactive content. It allows Web browsers to display animations, visual applications, games and other graphical rich content without the need for a Java applet or Flash plugin.
CoffeeScript, an alternate syntax for JavaScript intended to be more concise and readable. It adds features like array comprehensions (also available in JavaScript since version 1.7)[111] and pattern matching. Like Objective-J, it compiles to JavaScript. Ruby and Python have been cited as influential on CoffeeScript syntax.
Google Web Toolkit translates a subset of Java to JavaScript.
Scala, an object-oriented and functional programming language, has a Scala-to-JavaScript compiler.[112]
Pyjs, a port of Google Web Toolkit to Python translates a subset of Python to JavaScript.
Google Dart, an all-purpose, open source language that compiles to JavaScript.
Whalesong,[113] a Racket-to-JavaScript compiler.
Emscripten, a LLVM-backend for porting native libraries to JavaScript, known as asm.js[114]
Fantom a programming language that runs on JVM, .NET and JavaScript.
TypeScript, a free and open-source programming language developed by Microsoft. It is a superset of JavaScript, and essentially adds support for optional type annotations and some other language extensions such as classes, interfaces and modules. A TS-script compiles into plain JavaScript and can be executed in any JS host supporting ECMAScript 3 or higher. The compiler is itself written in TypeScript.
Haxe, an open-source high-level multiplatform programming language and compiler that can produce applications and source code for many different platforms including JavaScript.
ClojureScript,[115] a compiler for Clojure that targets JavaScript. It is designed to emit JavaScript code that is compatible with the advanced compilation mode of the Google Closure optimizing compiler.
Kotlin, a statically-typed language that also compiles to Java byte code.
SqueakJS, a virtual machine and DOM environment for the open-source Squeak implementation of the Smalltalk programming language.

text: As JavaScript has unusual limitations – such as no explicit integer type, only double-precision binary floating point – languages that compile to JavaScript and do not take care to use the integer-converting shift and bitwise logical operators may have slightly different behavior than in other environments.

text: JavaScript and Java[edit]

text: A common misconception is that JavaScript is similar or closely related to Java. It is true that both have a C-like syntax (the C language being their most immediate common ancestor language). They also are both typically sandboxed (when used inside a browser), and JavaScript was designed with Java's syntax and standard library in mind. In particular, all Java keywords were reserved in original JavaScript, JavaScript's standard library follows Java's naming conventions, and JavaScript's Math and Date objects are based on classes from Java 1.0,[116] but the similarities end there.

text: Java and JavaScript both first appeared on 23 May 1995, but Java was developed by James Gosling of Sun Microsystems, and JavaScript by Brendan Eich of NetScape Communications.

text: The differences between the two languages are more prominent than their similarities. Java has static typing, while JavaScript's typing is dynamic. Java is loaded from compiled bytecode, while JavaScript is loaded as human-readable source code. Java's objects are class-based, while JavaScript's are prototype-based. Finally, Java did not support functional programming until Java 8, while JavaScript has done so from the beginning, being influenced by Scheme.


document_title: Louise Brown

question_text: where was the world's first test-tube baby born july 25th 1978

question_tokens: where was the world 's first test-tube baby born july 25th 1978

text: Louise Brown

text: Biography[edit]

text: Louise Joy Brown was born at Oldham General Hospital, Oldham, by planned Caesarean section delivered by registrar John Webster.[1] She weighed 5 pounds, 12 ounces (2.608 kg) at birth.[2] Her parents, Lesley and John Brown, had been trying to conceive for nine years. Lesley faced complications of blocked fallopian tubes.[2]

text: On 10 November 1977, Lesley Brown underwent a procedure, later to become known as IVF (in vitro fertilisation), developed by Patrick Steptoe and Robert Edwards. Edwards was awarded the 2010 Nobel Prize in Medicine for this work.[3] Although the media referred to Brown as a "test tube baby",[4] her conception actually took place in a Petri dish. Her younger sister, Natalie Brown, was also conceived through IVF four years later, and became the world's fortieth child after conception by IVF. In May 1999, Natalie was the first human born after conception by IVF to give birth herself—without IVF—to daughter Casey.[2] Natalie has subsequently had three additional children; sons Christopher, Daniel, and Aeron, the last of whom was born in August 2013. And after four years her second child died due to medical issues.

text: In 2004, Brown married nightclub doorman (bouncer) Wesley Mullinder. Dr. Edwards attended their wedding.[2] Their son Cameron, conceived naturally,[4] was born on 20 December 2006.[5] Brown's second son, Aiden Patrick Robert, was born in August 2013.

text: Brown's father died in 2007.[6] Her mother died on 6 June 2012 in Bristol Royal Infirmary at the age of 64[7] due to complications from a gallbladder infection.[6]

text: Ethical and religious issues[edit]

text: Although the Browns knew the procedure was experimental, the doctors did not tell them that no case had yet resulted in a baby. This has raised questions of informed consent.[8]

text: Shortly before the death of Pope Paul VI, when asked for his reaction to Brown's birth, the patriarch of Venice, Cardinal Albino Luciani (later Pope John Paul I), expressed concerns about the possibility that artificial insemination could lead to women being used as "baby factories", but also refused to condemn the parents of the child,[9] noting they simply wanted to have a baby.[10]


document_title: Administrative distance

question_text: what is the administrative distance for ospf in cisco networking

text: Administrative distance

text: Overview[edit]

text: The administrative distance (AD) value is assigned by the router on a per-protocol basis. Routers, by design, should not install multiple routes into the routing table as this has the potential to cause routing loops.[2] While a router may run multiple routing protocols on the same device, it is necessary for the router to implement a process to ensure that multiple routes, pointing to the same destination do not simultaneously exist in the routing table. Each process running on a router advertises its administrative distance value to the local router. The router uses this value to determine which route should be used. Once a route has been selected, the routing information database is updated. If two routes have the same administrative distance, the router uses its vendor-specific algorithm to determine which route should be installed.[2] Cisco routers simply ignore the values and fall back to the default values, which are never the same.[4]

text: The router will usually compare administrative distances to determine which protocol has the lowest value. The router prefers protocols that have a lower assigned administrative distance. For example, OSPF has a default distance of 110, so it is preferred by the router process, over RIP, which has a default distance of 120. The administrator can arbitrarily reconfigure the administrative distances, which affects the ranking of the preferred routes by the routing process. On Cisco routers, static routes have an administrative distance of 1, making them preferred over routes issued by a dynamic routing protocol. The administrative distance is a value that is always only referenced by the local router itself. The administrative distance is not advertised on the network.[2]

text: Default administrative distances[edit]

text: Cisco[edit]

text: The following table lists the default administrative distances for various routing protocols used on Cisco routers.[3]

text:
Routing Protocol
Administrative distance

Directly connected interface
0

Static route out an interface
1

Static route to next-hop address
1

DMNR - Dynamic Mobile Network Routing
3

EIGRP summary route
5

External BGP
20

Internal EIGRP
90

IGRP
100

OSPF
110

IS-IS
115

Routing Information Protocol (RIP)
120

Exterior Gateway Protocol (EGP)
140

On Demand Routing (ODR)
160

External EIGRP
170

Internal BGP
200

Next Hop Resolution Protocol (NHRP)
250

Floating Static Route (ex. backup default route)
Variable--user assigned

Unknown (Others)
255

text: Please note that:

text:
An administrative distance of 255 will cause the router to remove the route from the routing table and not use it.
Since IOS 12.2, the administrative distance of a static route with an exit interface is 1. Prior to the release of 12.2 it was in fact 0.
Only the interface itself has an administrative distance of 0, since a route cannot have a distance of less than 1.
Directly connected routes have an administrative distance of 0. [5]
A default static route learned via DHCP will have an administrative distance of 254.

text: Configuration[edit]

text: Cisco IOS[edit]

text: The network administrator may modify the administrative distance to change the desired ranking of router protocols. This may be necessary in cases where routing redistribution has to be used, otherwise, routing loops could occur.[3] The Cisco Internetwork Operating System enables network administrators to modify the distance by changing the distance value in sub-router configuration mode. In the example below, RIP's administrative distance is changed to 89 so that it used in preference to OSPF.[3]

text: R1> enable

text: R1# configure terminal

text: R1(config)# router rip

text: R1(config-router)# distance 89

text: Manually configuring the administrative distance is also required when configuring a floating static route. Floating Static routes are used to provide an alternate path when a primary link fails. In order for static routes to be configured as a backup, the static route's administrative distance would need to be adjusted. Otherwise, it will take precedence over all routing protocols and routes issued from a routing protocol will not be inserted into the routing table.[3] The example below shows how to configure the administrative distance to 254 to specify that it should only be used as a last resort.

text: R1(config)# ip route 10.0.0.0 255.0.0.0 backupLink 1 254

text: In the event that two routing protocols are configured with the same administrative distance, the Cisco router will ignore the configured values and instead use the default values.[4]

text: Verification[edit]

text: Cisco IOS[edit]

text: Verifying the configuration of the administrative distance is done on Cisco equipment using the show ip route command in privileged exec mode on the console of the Cisco router.[6][7] In the example shown below, the administrative distance is 1. The letter "S" indicates that the route is a static route that has, for all intents and purposes, been added manually to the router process by the administrator and installed into the routing table.

text: Router# enable

text: Router# configure terminal

text: Router(config)# ip route 1.1.1.0 255.255.255.0 fastEthernet 0/0

text: Router(config)# do show ip route

text: The do show ip route command will display the following, confirming that a static route has an  administrative distance of 1.

text: S   1.1.1.0/0 [1/0] via 172.31.0.1