JavaScript和Java在概念和设计方面都是彻底不一样的语言。JavaScript由Brendan Eich于1995年发明,并于1997年成为ECMA标准。ECMA-262是官方名称。ECMAScript 6(2015年6月发布)是JavaScript的最新官方版本。html
在HTML中,必须在<script>和</ script>标记之间插入JavaScript代码。能够放在HTML页面的<body>和<head>部分。数组
JavaScript能够以不一样的方式“显示”数据:浏览器
var person = "John Doe", carName = "Volvo", price = 200;
注意:声明没有值的变量将具备 undefined值。若是从新声明JavaScript变量,它将不会丢失其值。ide
执行这些语句后,变量person仍将具备值“John Doe”:函数
var person = 'John Doe'; var person; console.log(person);
若是向字符串添加数字,那么将该数字视为字符串并链接。+=用于字符串拼接;测试
console.log(1 + 5 + '10' + 15); // 61015
若是一个变量的值是字符串的数字,执行++操做会转成数字并计算 ; ++ 是操做变量的,不能是 ++1 或 1++ui
var number = '5' console.log(typeof number) // string console.log(number += 1); // 51 console.log(++ number); // 52 console.log(typeof number) //number
将字符串与数字进行比较时,JavaScript会在进行比较时将字符串转换为数字:空字符串转换为0。非数字字符串转换为NaN; 和NaN比较始终为false,即便是和NaN本身。能够用isNaN()判断是不是非数字,再进行比较,链接,运算等操做。比较两个字符串时,“2”将大于“12”,由于(按字母顺序)1小于2。所以比较的时候最好转成Number类型。this
function print(log){ console.log(log); }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script src="base.js"></script> <script> print('5' > 4); //true print('' > -1); // true print('' < 1); // true print('n' > 0) // false print(0 === NaN) //false print(0 == NaN) //false print(NaN === NaN); // false print(NaN == NaN); // false </script> </body> </html>
number,string,object, boolean,undefinedspa
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script src="base.js"></script> <script> print(typeof "John" ); // Returns string print(typeof 3.14) // Returns number print(typeof false) // Returns boolean print(typeof [1,2,3,4]) // Returns object print(typeof {name:'John', age:34}) // Returns object print(typeof a) // Returns undefined </script> </body> </html>
JavaScript具备动态类型。这意味着同一个变量能够用做不一样的类型:设计
var x; // Now x is undefined var x = 5; // Now x is a Number var x = "John"; // Now x is a String
在JavaScript中,null的数据类型是一个对象。
var person = null; // Value is null, but type is still an object
undefined和null之间的区别:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
undefined比null更消极,null表示变量该是一个对象,undefined表示不知道要保存什么类型;
返回值:数组转换为(逗号分隔的)数组值的字符串。
注意:将对象转成字符串时,用String()转,由于String(null)不出错, undefined.toString()或null.toString()会出错
返回值:用给定的分隔符将各数组元素组成字符串,相似于toString()
分别在尾巴上弹出和推入元素;
返回值:分别返回弹出的元素和新数组的长度;shift()和unshift()相似,只是在前面弹出和推入元素
将数组统一用给定参数填充;
返回值: 更改后的数组
处理函数: func(currentValue[,index,arr]) 【下同】
返回值:传入一个函数,根据函数的返回结果判断是保留,并将保留结果做为数组返回
返回值:传入一个函数,根据函数的返回结果返回第一个符合条件的数组元素值
和find(func)相似,只是返回符合func()条件的数组元素的index值
返回值: 若是数组中的任何元素经过测试,则返回数组元素索引,不然返回undefined
为每一个元素调用处理函数func; thisValue是处理函数this的值,若是此参数为空,则是Windows对象
返回值: undefined
返回值: 将指定部分的数组元素做为新数组返回
在index位置开始删除howmany各元素,并插入item...
返回值: 返回删除的值(若是有)
Javascript没有对象:
因而模拟了一个对象:相似于hashmap的key:value保存结构
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script src="base.js"></script> <script> var stu = new Object(); // 可以保存key value的值 stu.name = "王有财"; stu.age = 21; stu.showInfo = function(){ print(this); print('name = '+ this.name + ';age = ' + this.age); } stu.showInfo(); </script> </body> </html>
结果:
{name: "王有财", age: 21, showInfo: ƒ}
name = 王有财;age = 21