起源
JavaScript诞生于1995年,前期主要用于处理网页中的前端验证。
ECMAScript是一个JavaScript标准,而这个标准需要由各个厂商去实现。
一个完整的JavaScript应该由以下三个部分构成:
- ECMAScript :标准
- DOM:文档对象模型
- BOM:浏览器对象模型
JS的特点:
- 解释性语言
- 动态语言
- 基于原型的面向对象
- 类似于C和Java的语法结构
/*可以发出警告框*/
alert("警告");
/*可以向body中输出内容*/
document.write("内容");
/*可以向控制台输出内容*/
console.log("内容");
JS代码写在什么地方:
1.可以将JS代码编写到标签的属性中:
<body>
<button onclick="alert('你点我干嘛');">点我一下</button>
<a href="javascript:alert('你真的点啊');">点我点我</a>
</body>
但是不推荐这种结构和行为耦合的方式。
2.可以写在script
标签中。
3.可以将代码编写在外部js文件中,然后通过script
标签引入。
<script type="text/javascript" src="new_file.js"></script>
script
标签一旦引入外部JS文件,则在内部写的代码将被忽略。
如果需要可以创建一个新的script
标签用于编写内部代码。
多行注释/*内容*/
单行注释//
JS中:
- 严格区分大小写
- 每条语句以分号(;)结尾
- 忽略多个空格和换行,可以用于格式化
- 使用
var
关键字来声明一个变量
var a;
a=123;
var b = true;
console.log(a);
console.log(typeof b);
var a = 456;
- 标识符:函数名、变量名、属性名等,
- 标识符中可以含有字母、数字、_、$
- 不能以数字开头
- 不能是ES中的关键字
- 一般驼峰命名法
JS底层保存标识符实际上是采用Unicode编码,所以,理论上讲UTF-8中含有的所有内容都可以作为标识符。
六种数据类型:
- String
- Number(包括整数和浮点数)
- Boolean
- Null(用来表示一个空对象)
- Undefined(当声明一个变量但是未赋值时)
- Object
可以使用运算符 typeof
来检查一个变量的类型。
console.log(typeof a);
强制类型转换:
将其他数据转换为String:
- 方法一: 调用被转换数据类型的
toString()
方法,该方法不会影响原数据的类型,并且将转换后的值返回,这种方法不能转换null
和undefined
两种类型的数据。
b = a.toString();
- 方法二:调用
String()
函数,并将被转换的数据作为参数传递给函数。这种方式所以可以转换所有类型的数据。
b = String(a);
将其他数据转换成Number:
-
方法一:使用
Number()
函数。
字符串转数值,如果是纯数字字符串,则直接转换;如果字符串中有非数字内容,则转换为NaN
;如果字符串是一个空的字符串,则转换为0;如果是被转换的是布尔型,那么ture
转换成1,false
转换为0;null
转数字将转为0;undefined
转数字将转为NaN
。 -
方法二:
parseInt()
函数,可以把一个字符串中有效的整数内容取出来。
a = "123a567";
b = parseInt(a);
则b的内容为数值123
parseFloat()
函数:类似parseInt
,只不过可以转换小数。
如果对非字符串类型的数据使用上两个函数,则会将数据先转换成字符串再进行操作。
在JS中,如果需要表示16进制的数字,则需要以"0X"开头;如果需要表示8进制数字,则需要以"0"开头。这时候有的字符串比如"070"会把浏览器搞晕,在将这种字符串转换成数字的时候,可以给parseInt()
函数传入第二个参数 “10”,表示以转换结果以十进制显示。
a = "070";
b = parseInt(a, 10);
转换为布尔值
- 直接使用
Boolean()
函数,非零即为真。
JS中可以表示的数字最大值为:`Number.MAX_VALUE`,比它大的,会返回一个`Infinity`,表示正无穷。`Number.MIN_VALUE`表示最小的正值。`NaN`表示Not a number。
- 在字符串中,我们可以使用
\
作为转义字符:
str = "我说:\"今天天气真不错!\"";
“表示”
\n表示换行
\t表示制表符
\表示\
如果使用JS进行浮点数运算,可能得到一个不精确的结果。