javascript介绍以及起源
目录
1.变量和常量的知识
2.基本数据类型
3.运算符
4.基本数据类型间的转换
5.流程控制语句
一、javascript介绍以及起源
js一种直译型脚本语言,一种动态语言、弱类型语言、支持内置类型。它的解释器被称为javascript引擎。它浏览器的一部分。用于客户端的脚本语言,最早是html网页上使用用来给HTML增加动态效果。
1995年,网景首次设计实现的 。因为网景跟sun合作的,因此才起名叫javascript,它除了语法风格跟java有点接近,其他跟java没有任何关系
为了取得发展以及技术上的优势 微软曾推出过Jscript,跟javascript一样可以在浏览器上运行。为了统一规格,javascript兼容于ECMA标准,因此它也称为ECMAScript
ECMA欧洲计算机联合商协会
js用途
1、嵌入文本到我们的HTML页面上
2、对浏览器事件作出响应
3、读写HTML
4、在数据提交到服务器之前先做数据验证
5、检测访客的浏览信息
6、控制cookie
7、基于nodeJs技术进行服务端的编程
js组成部分
1、ECMAScript规定核心的语法
2、DOM(document object model):文档对象模型
3、BOM(browser object model):浏览器对象模型
二、javascrip的语法
js可以有几种写法:
1、写在script标签内
2、写在外部js文件里面
3、写在标签内部的
三、标识符和关键字
1、什么是标识符:
/*
* 标识符
* - 在JS中所有的可以由我们自主命名的都可以称为是标识符
* - 例如:变量名、函数名、属性名都属于标识符
* - 命名一个标识符时需要遵守如下的规则:
* 1.标识符中可以含有字母 、数字 、下划线_ 、$符号
* 2.标识符不能以数字开头
* 3.标识符不能是javascript中的关键字或保留字
* 4.标识符一般都采用驼峰命名法
* - 首字母小写,每个单词的开头字母大写,其余字母小写
* helloWorld xxxYyyZzz
*
* - JS底层保存标识符时实际上是采用的Unicode编码,
* 所以理论上讲,所有的utf-8中含有的内容都可以作为标识符
*/
/*
2、常用的标识符格式:
i j
xxx_zzz
_xxxx
$xxx
a1
aaaBbbCcc
AaaBbbCcc
!!!!注意一点:标识符不要跟关键字同名,数字不允许作为首字母出现,这样我们js比较容易的区分开标识符和数字
3、关键字:
关键字是指我js语言中有特定含义,称为js语法中一部分的 那些单词
var let const for if foreach break continue do while switch....
4、保留字:
未来某个js版本会称为关键字的单词,一样是不可以当成变量名或者方法名来使用
5、注释:
//:单行注释
/**/:多行注释
四、js的数据类型
数据类型 就是我可以了解到的是描述数据的类型
js基本的数据类型 :数字类型,字符串型,布尔型,undefined,null
对象类型 数组
1、数字类型(Number)
只有一种数字类型,数字 可以是小数 ,也可以的整数
以0开头 默认使用8进制来表示我的这个数字
以0x开头 默认使用16进制来表述我的这个数字
如果以-开头 默认以负数
如果我带有e:以科学计数法来解析我的这个数字
2、字符串型(string)
字符串是存储字符的变量,用来表示文本的数据类型,程序中的字符串是包含单引号/双引号的,由单引号来界定我双引号中包含的字符串 反过来
es6模板字符串("`")
3、布尔类型(boolean)
一般是用在流程控制语句中,字符串和数字类型都是无穷多个,然而我们的布尔数据类型只有两个:true 和 false
这两个个值一般用于说明某个事物是真或者假
js一般用布尔类型来比较所得到的结果
4、null(空)
null
关键字null是一个特殊的值,它表示变量为空值,用来定义空的或者是不存在的引用。
如果试图去引用一个没有定义的值,就会返回一个null。
这里注意一点:null并不等于"" 或者0
5、undefined(未定义)
这个值表示变量不含有值,没有定义的值,或者被定义了一个不存在的属性值
!null和undefined区别:
null它表示一个变量被赋予一个空值,而undefined是表示变量还没有被赋值
五、运算符
用于执行程序代码运算,会针对一个以上操作数来进行
1、算术运算符
+ - * / % ++ --
字符串拼接使用“+”
2、比较运算符
<
>
==
!=
<=
>=
=== 全等于:将数值以及数据类型一并比较
!==不全等于:将数值以及数据类型一并比较
3、赋值运算符
=
+=
-=
*=
/=
%=
a=a+2;==>a+=2
a=a-2;==>a-=2
a=a*2;==>a*=2
a=a/2;==>a/=2
a=a%2;==>a%=2
4、逻辑运算符
&& 全真为真
|| 一个为真就是真
! 取反
逻辑短路
5、三元运算符(三目运算符)
表达式1?表达式2:表达式3
当我的表达式1成立时 执行表达式2 否则执行表达式3
六、数据类型间转换
1、显示数据类型转换
1.1转数字类型:
1.Number():可以将任意类型的参数转换为数字类型,遵循以下规则:
1、如果它是一个布尔值true和false将被分别转成1和0;
2、如果它是以个数字,返回它本身
3、如果是null,返回0;
4、如果是undefined,返回NaN
5、如果是一个字符串:
1)如果这个字符串只包含数字,则直接将它转成10进制数字(忽略前面的0)
2)如果有有效浮点格式,将它转成一个浮点数值
3)如果是空字符串,转换为0
4)如果以上都不符合==>NaN
2.parseInt(string,num):可以解析一个字符串,返回一个整数
1)忽略字符串前面所有的空格,直到找到第一个非空字符为止
2)如果第一个字符不是数字或者“-” 直接返回NaN
3)如果第一个字符是数字,它解析到遇到的第一个不是数字的字符为止
4)如果上面解析完结果是以0开头,就将它当成一个八进制来解析
5)如果以0x开头,则当成十六进制来解析。
6)如果我指定了num参数,那么 它就以num进制来解析
3.转字符串类型:
1.String():将任意的一个类型的值转换为字符串,遵循一下下规则:
1)如果是null,==>"null"
2)如果是undefined ==>"undefined"
toFied(num):可以把Number类型四舍五入为指定小数位的字符串。
返回的字符串,num保留小数位
Boolean():如果这个值是空字符串("")、数字零(0)、undefined或者null 会返回false,否则返回true
!空格并不是空字符串
2、隐式数据类型转换
js的数据类型非常弱的,在使用算术运算符的时候,运算符两边的数据类型可以是任意的 这是因为js的引擎它在代码运行之前偷偷把数据类型进行转换 ,这种转换我们称之为隐式转换
流程控制语句:
if语句
if(条件){
函数体
}
if else语句
if(条件){
函数体1
}else{
函数体2
}
if.....else if......else语句
if(条件1){
}else if(条件2){
}else if(条件n){
}else{
}
switch语句:多分支语句
switch(变量){
case a:
.....
break;
case b:
.....
break;
case c:
...
break;
........
default:
....
break;
}
循环结构:
1、while循环:先判断条件 当条件成立 再执行
while(循环成立条件){
....
}
2do...while循环:不论条件成不成立 先执行一遍 再判断
do{
.....
}while(循环成立条件)
3、for循环
4、for in循环
continue:
跳过当前循环,直接进入循环的下一个步骤
break:
结束循环