JavaScript基础学习--第一天

207 阅读9分钟

开始学习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,nullundefined,object
1.number:数字类型(包括整数和小数)
2.string:字符串数据类型
3.boolean:布尔数据类型(只有两个值:true1),false0))
4.null:空类型,值只有一个:null(一个对象的指向为空,此时赋值为null5.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--1500000001
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----->格式化代码的(设置代码有很好的格式,代码是错误的,这个快捷键是没有效果)