开始学习javascript,菜鸟一枚,先从基础开始。。。。。。
基础学习基本路线
1.js介绍及基本语法、运算符
2.js流程控制和:顺序结构、分支结构、循环结构
3.数组
4.函数
5.内置对象
6.常用方法
JavaScript介绍
JavaScript简称js
js包括三个部分:
1.ECMASscript 标准------------javascript的基本语法
2.DOM--------------Document Object Model 文档对象模型
3.BOM--------------Browser Object MOdel 浏览器对象模型
javascrip是什么?
是一门脚本语言
是一门解释性的语言
是一门动态类型的语言
是一门基于对象的语言
编译语言:需要把代码变异成计算机所认识的二进制语言,才能执行 (java c等)
脚本语言:不需要编译,直接执行 (javascript,cmd)
前端三种语言的作用?
html:是标记语言,用来展示数据
css:美化页面的作用
javascript:用户和浏览器进行交互
js代码可以写到三个页面:
1.在html的文件中,用script标签写js代码
2.js代码可以在html文件中写,如<input type="button" value="搜索" onclick="alert('hello')" />
3.在js文件中写js代码,但是需要在html文件中引入:<script src="test.js"></script>
写js代码注意的问题
1.在一对script标签中有错误的js代码,那么该错误代码后面的代码不会被执行
2.如果第一对script标签中有错误,不会影响后面script标签中的代码执行
3.script的标签中可以写什么内容 type="text/javascript"是标准写法或者写language="JavaScript"都可以
但是,目前在我们的html页面中,type和language都可以省略,原因:html是遵循h5的标准
4.有可能会出现这种情况:script标签中可能同时出现type和language的写法.
5.script标签在页面中可以出现多对
6.script标签一般是放在body的标签的最后的,有的时候会在head标签中,目前讲课的时候都在body标签的后面(body中的最后)
7.如果script标签是引入外部js文件的作用,那么这对标签中不要写任何的js代码,如果要写,重新写一对script标签
变量
1.操作的数据都是在内存中操作
2.js中存储数据的使用变量的方式 (名字 值--->数据)
3.js中声明变量都用var--->存储数据,数据应该有对应的数据类型
4.js中字符串类型的值都用双引号或单引号
eg:
存储一个数字10
变量的声明及赋值
var num = 10;
存储一个名字
var name = "小明";
变量的作用:
变量是用来存储数据或操作数据的
变量声明:var 变量名; (可以一次性声明多个变量)
变量初始化:var 变量名=值;
变量交换
1.使用第三方变量进行交换
var num1 = 10;
var num2 = 20;
var temp = num1;
num1 = num2;
num2 = temp;
console.log(num1,num2);
2.一般适用于数字的交换
var num1 = 10;
var num2 = 20;
num1 = num1 + num2; // 30
num2 = num1 - num2; // 10
num1 = num1 - num2; //30 - 10
console.log(num1,num2);
3.//扩展的变量的交换:只需要看代码,不需要理解---位运算
var num1 = 10;
var num2 = 20;
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
console.log(num1, num2);
注意基本的代码规范
1.js中的变量都用var
2.js中每一行代码结束都应该有分号;(英文半角)
3.js中的大小写是区分的 N 与 n 是两种含义
4.js中的字符串可以使用单引号,也可以使用双引号
变量命名的规范:要遵循驼峰模式
1.变量的命名要有意义---见名之意
2.变量名一般由英文字母,$符号,下划线,数字组成,一般以字母,$,下划线开头
3.变量名一般是小写
4.变量名如果是多个单词,第一个单词第一个字母小写,后面单词的首字母大写。驼峰模式
5.不能使用关键字作为变量名
6.变量名不能重复
关于注释
注释:就是对代码的解释,给其他程序猿看的,不会被执行
1.单行注释 //这是单行注释
一般是对某一行代码的解释
2.多行注释 /* 这是多行注释 */
一般放在函数或一段代码上面
3.文档注释 /** 这是文档注释 */
js中的数据类型
js中原始数据类型有:number,string,boolean,null,undefined,object
1.number:数字类型(包括整数和小数)
2.string:字符串数据类型
3.boolean:布尔数据类型(只有两个值:true(1),false(0))
4.null:空类型,值只有一个:null(一个对象的指向为空,此时赋值为null)
5.undefined:未定义,值只有一个,undefined;
什么情况下结果是undefined?
a.变量声明了,但是没有赋值
b.函数没有明确返回值,但是却接收了
c.如果一个变量是undefined和一个数字进行计算,结果是:NaN(not a number) 不是一个数字,也没有意义
6.object 对象
如何获取这个变量的数据类型是什么? 使用 typeof 来获取
语法:typeof 变量名
typeof(变量名)
在控制台中输出:
var num = 10;
console.log(typeof(num));
数字类型
在js中所有数字都属于number类型
其他语言:
整数类型:int
单精度浮点型:float
双精度浮点型:double
进制:
二进制:遇到2进一
00000001-----1
00000010-----2
00000011-----3
00000100-----4
00000101----5
00000110----6
00000111-----7
00001000-----8
00001001----9
八进制:遇到8进一
00000001
00000002
00000003
00000004
00000005
00000006
00000007
00000010-----8
00000011-----9
00000012-----10
十进制:遇到10进一
0
1
2
3
4
5
6
7
8
9
10
十六进制:遇到f进一 (f--15)
00000001
00000002
00000003
00000004
00000005
00000006
00000007
00000008
00000009
0000000a----10
0000000b---11
0000000c----12
0000000d---13
0000000e---14
0000000f---15
00000010---16
00000011---17
00000012---18
0f12a
js中可以表示那些进制?
var num = 10;//十进制
var num1 = 012;//八进制中的10
var num2 = 0x10//十六进制中的16
注意内容
数字类型有范围:最大值和最小值
console.log(Number.MAX_VALUE);//数字类型的最大值
console.log(Number.MIN_VALUE);//数字类型的最小值
不要用小数去验证小数:
var num1 = 0.1;
var num2 = 0.2;
var result = num1 + num2;
console.log(result==0.3);//自带的bug 结果为flase
如何验证这个结果是不是NaN,应该使用isNaN();
var num;
console.log(isNaN(num));//num 是 undefined 不是一个数字---> NaN true
console,log(isNaN(10))//false NaN不是一个数字 10是一个数字 flase
字符串
获取字符串的长度:变量名.length
eg:
var str = "asdfghjk";
console.log(str.length);//获取字符串的长度
字符串的拼接:
1.使用 + 可以把多个字符串放在一起形成一个字符串
2.如果只有一个是字符串其他的是数字,那么结果也是拼接,不是相加
3.如果有一个是字符串,另一个不是字符串,使用 - 号,此时会发生计算(* 、/ 也是一样的)
var str1="10";
var str2=5;
console.log(str1*str2);
4.浏览器帮我们自动把字符串类型转换成了数字类型,称作:隐式转换
js中的转义字符
类型转换
一 其他类型转成数字类型
1.parseInt();//转整数
console.log(parseInt("10"));//10
console.log(parseInt("10asd"));//10
console.log(parseInt("10.25"));//10
console.log(parseInt("1afd0"));//1
console.log(parseInt("a10"));//NaN
2.parseFloat();//转小数
console.log(parseFloat("10"));//10
console.log(parseFloat("10.456"));//10.466
3.Number();//转数字
console.log(parseInt("10"));//10
console.log(parseInt("10asd"));//NaN
console.log(parseInt("10.25"));//10.25
console.log(parseInt("1afd0"));//NaN
console.log(parseInt("a10"));//NaN
总结:想要转成整数parseInt();转小数parseFloat();想要转成数字类型Number();-->比前两种严格
二 其他类型转成字符串
1. .toString();
var num = 10;
console.log(num.toString());//转成字符串类型
2.String();
var num = 20;
console,log(String(num));
注意: 如果变量有意义调用.toString();转换
如果没有意义 调用String();转换
三 其他类型转成Boolean类型
Boolean(值);
console.log(Boolean(1));//true
console.log(Boolean(0));//false
console.log(Boolean(11));//true
console.log(Boolean(-10));//true
console.log(Boolean("哈哈"));//true
console.log(Boolean(""));//false
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
运算符
算术运算符:+ - * /
算术运算表达式:有算术运算符连接起起来的表达式
一元运算符:这个操作符只需一个操作数就可以运算的符号 ++ --
二元运算符:这个操作符由两个操作数连接起来运算 a + b
三元运算符:表达式? 条件1:条件2
复合运算符:+= -= /= *= %=
复合运算表达式:由复合运算符连接起来的表达式
var num = 10;
num += 10;//num = num + 10;
关系运算符:> < >= <= == === != !==
关系运算表达式:由关系运算符连接起来的表达式,关系运算表达式的值是布尔类型的
逻辑运算符:
&& --逻辑与--并且的意思
|| --逻辑或--或者的意思
! --逻辑非--取反的意思
逻辑运算表达式:由逻辑运算符连接起来的表达式
表达式1 && 表达式2 一假则假
表达式1 || 表达式2 一真则真
!表达式
如果表达式的结果为true,那么整体结果是false;反之为true
赋值运算符: =
字面量:把一个值直接赋值给某一个变量(声明变量并初始化)
var num = 10;
webstrom+google浏览器的一些快捷键
在webstorm工具中打开浏览器页面:
1. 右上角有浏览器图标,直接点击即可
2. 快捷键: Alt+F2 回车或者上下键选择
webstrom注释快捷键:
ctrl+/------>单行注释
ctrl+shift+/-------->多行注释
取消注释是:再按一次
打开浏览器开发者工具----->f12
打开控制台界面:选择console点击
在控制台输出的语法:
console.log();
格式化代码:
Ctrl+Alt+L----->格式化代码的(设置代码有很好的格式,代码是错误的,这个快捷键是没有效果)