—– 了解JavaScript
JavaScript是一种基于对象和事件驱动的客户端脚本语言。
最初的设计是为了检验html表单输入的正确性(网页交互设计)。
完整的JavaScript是由ECMAScript(语法)、 Browser Objects(BOM、DOM)(特性)组成。
ECMAScript中的一切(变量、函数名、操作符)都区分大小写。
—– 标识符
标识符:变量、函数、属性的名字、函数的参数,都是标识符。
- 字母、数字、下划线_、$ 4种可用。
- 开头不能是数字。
- 不能使用关键字、保留字。
—– 变量
ECMAScript的变量是松散类型(可以用来保存任何类型的数据),即每个变量仅仅是一个用于保存值的占位符而已。
声明 | 赋值 |
---|---|
var sunday = | hello world |
—– 数据类型
字符串、数字、布尔、Null、Undefined、数组 + object对象
检测数据类型:typeof
检测方法:【typeof 变量 | typeof(变量)】
简单数据类型:
- 字符串型(String)
类型转换:toString()和String()
str.toString() //将str转换为字符串
str是需要转换的内容,可以是数值,布尔值,对象和字符串。
注意:如果不知道要转换的值是null或者undefined的情况下,可以使用String()强制转换,能够将任何类型的值转换为字符串。
- 数字型(Number) —— 整数和浮点数
特殊:NaN(非数值not a number)
1.任何涉及NaN的操作(如NaN/10)都会返回NaN。
2.NaN与任何值都不相等,包括NaN本身。
类型转换:number()、parseInt()和parseFloat()
number()强制类型转换,可以用于任何数据类型
parseInt()和parseFloat()专门用于把字符串转换为字符
parseInt()会忽略字符串前面的空格,直至找到第一个非空格字符。换句话说,提取的必须以数字开头,如果不是以数字开头,得到的结果会是NaN。
parseFloat()到第一个小数点有效
- 布尔型(Boolean)
类型转换:Boolean()
注意:
1.除0之外的所有数字,转换为布尔型都为true
2.除“ ”之外的所有字符,转换为布尔型都为true
3.null和undefined转换为布尔型为false
- 数组型(Array)–暂时未整理
空(Null) | 未定义(Undefined)—— 派生自null值 |
---|---|
Null类型也只有一个值,即null。 | Undefined类型只有一个值,即undefined。 |
如果定义的变量准备在将来用于保存对象,则最好改为null。 | 声明一个变量,没有赋值,就是undefined。 |
示例:
var sunValue;
alert(sunValue == undefined); //output "true"
alert(null == document.getElementById('notExistElement'));//output "true"
alert(typeof undefined); //output "undefined"
alert(typeof null); //output "object"
alert(null == undefined); //output "true"
alert(null === undefined); //output "false"
alert(typeof null == typeof undefined); //output "false"
复杂数据类型:
对象(Object)–暂时未整理
以下是关于数据类型的一些示例:
var name_01="sora";
var age=20;
var email="sora@qq.com";
var address,settings=null;
var distance=12.67980;
var id="16";
console.log(typeof(distance)); //number
console.log(age-"abc"); //NaN
//数字与任何非数字的运算都是NaN
console.log(typeof(age-"abc")); //number
console.log(isNaN(email)); //true
console.log(isNaN(id)); //false
console.log(typeof id); //string
id=Number(id);
name_01=Number(name_01);
console.log(typeof id); //number
console.log(name_01); //NaN
var topval=parseInt("28px"); //注意top关键字
var c="abc58";
console.log(topval); //28
console.log(parseInt(c)); //NaN
console.log(parseInt("0xf",16)); //15
//parseInt提供了第二个参数,16进制,可忽略不写
var d=parseFloat("12.34.56px");
var e=parseFloat("0.123abc");
console.log(d); //12.34
console.log(e); //0.123
var msg='hello world';
var ids=78965;
var idstr=ids.toString();
console.log(idstr); //78965
console.log(String(idstr)); //78965
var m;
var isStudent=true;
var isChild=false;
console.log(typeof idstr); //string
console.log(String(m)); //undefined
console.log(typeof(isStudent)); //boolean
console.log(isStudent.toString()); //true
console.log(isChild.toString()); //false
var s=123;
console.log(Boolean(s)); //true
var x=0;
console.log(Boolean(x)); //false
var strings1="hello";
console.log(Boolean(strings1)); //true
var strings2=""; //此处是空的
console.log(Boolean(strings2)); //false
var strings3=" "; //此处是空格
console.log(Boolean(strings3)); //true
var y; //此时y值是undefined
console.log(Boolean(y)); //false
var timer=null;
console.log(Boolean(timer)); //false
如果有问题,请留言,谢谢。