阿特伍德定律:指的是any application that can be written in JavaScript,will eventually be written in JavaScript ,意思是“任何可以用Javascript来写的应用,最终都将用Javascript来写。
JavaScript注释、数据类型
js 和java没有任何关系(雷锋和雷峰塔)
概念:JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
功能:增强用户和html的交互体验、可以控制html元素 、让页面有动态效果、增强用户体验
起源:
第一个脚本语言叫做 c-- 后更名scriptEase
NetSpace(网景) 开发liveScript ,后因与Sun合作,所以更名为JavaScript
微软,抄袭js开发JScript
ECMA指定ECMAScript(一套标准)
JavaScript = ECMAScript(标准) + BOM(js独有) + DOM(js独有)
ECMAScript客户端脚本语言的标准
1.基本语法
- 与HTML结合
- 内部js
- 外部js
注意
script可以写在任何地方,但是推荐写在head标签
script可以有多个
注释
// 单行注释,任何位于//与行末之间的文本都会被JavaScript忽略(不会执行)
/* */ 多行注释
注意:使用注释来防止代码执行很适合代码测试
数据类型
字符串、数值、布尔值、数组、对象等
JS变量能够保存多种数据类型:
var length = 7;//数字
var lastName = "Gates";//字符串
var cars = ["Porsche","Volvo","BMW"];//数组
var x = {firstName:"Bill",lastName:"Gates"};//对象
由于数据类型的差别我们需要注意,JS从左向右计算表达式,不同的次序会产生不同的结果:
var x =111 + 1 +"abc";//结果为:112abc
var y ="abc" + 111 +1;//结果为:abc1111
Js拥有动态类型,即相同变量可用作不同类型:
var x; //现在x是undefined
var x = 1; //现在x是数值
var x = "abc"; //现在x是字符串
字符串string:
被单引号或双引号包围;可以在字符串内使用引号,只要不予包围字符串的引号不匹配。:
var carName = "Porsche 911"; // 使用双引号
var carName = 'Porsche 911'; // 使用单引号
var answer = "It's alright"; //双引号内的单引号
var answer = "He is called 'Bill'"; // 双引号内的单引号
var answer = 'He is called "Bill"'; // 单引号内的双引号
数值number:
JS只有一种数值类型。(写数值时写不写小数点均可)。
整数,小数,NaN(not a number 不是数字的数字类型)。
布尔值boolean:
只有两个值:true/false
数组:
用 [] 书写,项目之间由逗号隔开:
var cars = ["asd","ass","ghj"];//名为cars的数组,包含三个项目
数组索引基于零,即第一个项目是[0],第二个项目是[2]。
对象:
用花括号书写。
对象属性是name:value,由逗号隔开。
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}//对象(person)有四个属性:firstName、lastName、age 以及 eyeColor。
typeof运算符:
用来确定JS变量的类型
typeof运算符对数组返回“object”,在JS中数组属于对象
typeof "" // 返回 "string"
typeof "Bill" // 返回 "string"
typeof 0 // 返回 "number"
typeof 314 // 返回 "number"
typeof 3.14 // 返回 "number"
typeof (7) // 返回 "number"
typeof (7 + 8) // 返回 "number"
Undefined:
在js中没有值得变量,其值是 undefined。typeof 也返回 undefined。
var person; // 值是 undefined,类型是 undefined
任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。
person = undefined; // 值是 undefined,类型是 undefined
注意:
空值与 undefined 不是一回事。
空的字符串变量既有值也有类型。
var car = ""; // 值是 "",类型是 "string"
Null:
一个对象为空的占位符
可以通过设置值为 null 清空对象
var person = null; // 值是 null,但是类型仍然是对象
var person = undefined; // 值是 undefined,类型是 undefined
Undefined 与 Null 的区别:
Undefined 与 null 的值相等,但类型不相等:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true