JavaScript是一种基于对象和事件驱动的客户端脚本语言,最初设计是为了检验HTML表单输入正确性的,起源于Netscape公司的LiveScript语言,之后Netscape公司与开发Java的Sun公司一起开发出了JavaScript。
JavaScript的组成
ECMAScript
- 提供语法功能
Browser Object
DOM
- 提供访问和操作网页内容的方法和接口
BOM
- 提供与浏览器交互的方法和接口
如何在HTML中使用JavaScript
- 在
head
或body
标签中使用<script>
或<script src=' '>
标签嵌入JavaScript脚本
JavaScript的数据类型
数据类型分类-
undefined
类型 未定义的,即声明的变量没有赋值; -
null
类型 表示空的指针对象,当之后要赋与对象值时,可以先将变量赋值为null -
undefined
值是派生自null
值的,所以undefined == null
的返回结果是true -
Number
类型,表示整数和浮点数 -
NaN
也是Number数值类型,表示非数值,如果用一个数值减去了一个字符串,那么结果就为NaN;另外NaN与任何值都不相等,包括其本身 -
isNaN(n)
方法,检测值是否是“非数值”,返回结果是bool型;该方法接收的参数会尝试转换为数值,例如字符串“16”,那么返回结果就是false,即是数值类型 -
String
类型,表示由零或多个16位Unicode字符组成的字符序列
数值转换
Number(); //转数值类型,不推荐使用
parseInt();//推荐使用
var topVal=parseInt("28px");
console.log(topVal);//结果为28
var c = "abc58";
console.log(c);//结果为NaN,parseInt()方法只能提取以数字开头的值
parseFloat()
var d=parseInt("0123");
console.log(d);//结果为123,此处parseInt()会忽略掉前面的0
var d= parseFloat("0123");
console.log(d);//结果为123,此处parseFloat()会忽略掉前面的0
字符串转换
toString();
String();
布尔转换
- 除0之外的所有数字,转换为布尔型都为
true
- 除 “ ”空字符串之外的所有字符(包括里面有一个空格),转换为布尔型都为
true
-
null
和undefined
转换为布尔型为false
JavaScript的操作符
运算操作符
var num1 = 10,num2 = "5";
console.log(num1 * num2); //结果为50,因为在做乘法操作时,会进行隐式类型转换,自动把数值的字符串转换为数值
var num3 = 5;
var num4 = "5";
console.log(num3 + num4); //结果为55
console.log(num3 - num4);//结果为0
console.log(num3 * num4);//结果为25
console.log(num3 / num4);//结果为1
比较操作符
-
===
全等,比较值和数据类型是否相等 -
!==
不全等
null==undefined ;//结果为true
null===undefined;//结果为false
逻辑操作符
逻辑与
var num =3,n=null;
console.log(n && num3);//打印结果为null,即在逻辑与操作中只要有一个为null,打印结果就为null
console.log(33 * "abc" && 55);//结果为NaN,即在在逻辑与操作中只要有一个为NaN,打印结果就为NaN
console.log(nums && 55);//结果为undefined,即在在逻辑与操作中只要有一个为undefined,打印结果就为undefined
var result = 29;
console.log("time" && 90 && "##");//结果为##,即如果第一个操作数如果为true,则返回最后一个操作数
console.log(0 && result);//结果为0,如果第一个操作数为false,则返回第一个操作数
逻辑或
console.log("hello" || 0);//结果为hello
console.log(99 || 0 || “abc”);//结果为99
console.log("" || 88 || true);//结果为88,因为空字符串转为布尔类型为false
console.log(0 || "" || null); 结果为null,因为前俩个转为布尔都是false,那么最后一个不管是true还是false,都会被返回
网友评论