JavaScript基础

前言

JavaScript 与 ECMAScript的关系

ECMAScript是一种标准,
JavaScript是一种符合ECMAScript标准的语言

W3C标准

网页主要有三部分组成:结构层—HTML
\quad \quad \quad \quad \quad \quad \quad \quad \quad 样式层—CSS
\quad \quad \quad \quad \quad \quad \quad \quad \quad 行为层—JavaScript

数据类型

字符串

用单引号或双引号引起来的文本内容就是字符串
如果字符串中有双引号,则最外面可以用单引号,还可以在引号前加\(转译符)
’ " \n(换行) \t(缩进) \b(空格)

数值类型

加号的作用

两个字符串用+号连接,那么加号的作用是连接这两个字符串
两个数值用加号连接,那么加号的作用是运算符的作用
字符串与数值用加号连接,那么加号的作用是连接这两个值

判断数据类型

Typeof: typeof() 或者 typeof 直接量
如 console.log(typeof(“abc”)); 输出string
console.log(typeof(123)); 输出number
console.log(typeof abc); 输出undefined
console.log(abc); //报错,前面都是对的

了解其它数据类型

简单数据类型(存储在栈,值类型)与复杂数据类型(存储在堆,引用类型)的分类是根据他们存储的位置不同分的

简单数据类型

string

number

NaN : not a number
作用:用来表示数值的一种不正常的状态
一般会在计算出现错误的情况下出现
isNaN:判断是否为NaN

例如:var a = 123;
	 var b = "123";
	 console.log(isNaN(a-b));   输出true

boolean 类型

取值 true, false
作用 用于判断条件的结果

undefined

如果一个变量声明了但是没有赋值,他的结果就是undefined(在页面上是不会报错的)

consloe.log(a);     同样是undefined,但是由于a没有声明变量,则会报错

复杂数据类型

Null

object对象

例如: var a = new Object();   //对象的创建
	  a.xingming = "zhangsan";   //对象属性的添加
	  a.chengji = 99;
      alert( a.xingming+a.chengji);

Array

例如:var a = new Array();    //创建数组
	  a[0] = "81";
	  a[1] = "82";
	  alert("得到数组中第一个数"+a[0]);

注意:数组定义好以后是一个无穷大的容器,元素可以任意增加
a.length 得到数组长度

Function

例如:function gaobai(){
		console.log("我爱你");
		console.log("呵呵");
	}  //函数的定义
	gaobai();   //函数的调用
	funcation jiafa(shu1,shu2){     **形参**
		return shu1+shu2;  
		// 如果函数没有return,则默认返回undefined
	}
	Jisuan(12,13);     **实参**

变量 (断电以后会清空)

声明变量

var a;   //var(声明变量的关键字)   a(变量名)

给变量赋值

a = "123";

变量名的注意点

只能是由英文字母,数字,下划线以及$符组成,并且数字不能放在名称的开头。
如果名称带有下划线
遵守驼峰命名法,首字母小写,第二个单词的首字母大写,如userName

变量可以和字符串一起输出

运算符

算术运算符

+: 如果加号的一边是字符串,那就是连接
如果加号的两边是数值,那就是加法

例如:var a = 123;
     var b = "123";
     console.log(a+a+a+b);      输出369123
     console.log(a+b+a+b);      输出123123123123
     console.log(b+a+a+a);      输出123123123123

-
*
/ \quad //除0,返回Infinity
% 取余 \quad //除0,返回NaN
( )

运算符简写

+=
-=
*=
/=
%=
a++ 后自加1 先表达式返回a的值 再a = a+1
++a 先自加1 先a = a+1 表达式返回a的值

例如:var a = 1; var b = a++ + ++a;  // 输出4,1+3 = 4	

复杂的运算

 var a = Math.pow(2,10);   2的10次方
 Math.round();     四舍五入
 Math.ceil();          向上取整
 Math.floor();        向下取整
 Math.abs();          求绝对值
 Math.max(x,y,z);         返回最大值
 Math.min(x,y,z);         返回最小值
 Math.random()          生成一个大于等于0,小于1.0的伪随机数
 Math.PI                      圆周率
 Math.E                       e  自然对数的底数
 Math.sqrt(3)              3的平方根,就是9
 Math.pow(27,1/3)     27的立方根,就是3
 Math.sin()          
 Math.log(10)                  10的自然对数
 Math.log(100)/Math.LN10      以10为底100的对数
 Math.log(512)/Math.LN2        以2为底512的对数
 Math.exp(3)                             e的三次幂

逻辑运算

&&(与,并且) //短路运算符,当有一个为false时,后面的不再计算

在这里插入图片描述
//输出为undefined
|| (或) //短路运算符,当有一个为true时,后面的不再计算,,与&&同理
! (非,取反) 得到对应Boolean的反
不是从左往右解析的,因为有优先级

逻辑运算符的优先级

!> && > ||
() > */ >±

比较运算符

> 大于
< 小于
>=
<=
== 判断是否相等, 仅仅只判断数据的内容,没有判断数据的类型

 例如:var a = 3;
      var b = "3";
      console.log(a==b);   输出true
      var c = true;
      var d = "true";
      console.log(c==d);   

输出false ,因为true本质上存储的是1,false本质上存储的是0,所以c就等于1,1和字符串true相比就是false
=== 判断是否全等, 即关心数据,又关心类型,但是NaN例外

 例如:var a = NaN;
      var b = NaN;
      console.log(a===b);   输出false
	  console.log(a==b);   输出false

!= 不等于 仅仅只判断数据的内容,没有判断数据的类型
!== 不等等于 即关心数据,又关心类型

赋值运算符和逗号运算符

var a , b, c;
a = b = c = 1;

强制数据转换类型

转number

Number(要转的内容)

a. 如果转换的内容可以转成数字,那么就直接返回这个内容对应的数字
b. 如果不可以转换,那么返回NaN
c. 如果内容是浮点数,返回会保留小数点内容
d. 如果内容为空,那么转换为0

parseInt(要转的内容)

a . 如果内容是浮点数,返回不会保留小数点内容,不是四舍五入
b . 忽略字符串前面的空格,直至找到第一个非空字符
c . 如果遇到第一个非数值的,则不继续解析

 例如:var a = " $\quad$ 123456abc123";
                         console.log(parseInt(a));    输出123456

d . 可以传递两个参数,第一个是要转换的字符串,第二个是要转换的进制

 例如:var num = parseInt("A",10);  //A按10进制解析成nan,因为10进制中没有A
      var num1 = parseInt("A",16);  //A按16进制解析成10
      var num2 = parseInt("10",10);  //10按10进制解析成10
	  var num3 = parseInt("10",16);  //10按16进制解析成16
	  var num4 = parseInt("10",8);  //10按8进制解析成8
      var num5 = parseInt("10",2);  //10按2进制解析成2

parseFloat(要转的内容)

除第四小点d以外,与parseInt一样,唯一的区别是保留小数

转字符串

toString()

 例如:var a = 10;
	  var b = a.toString();  //默认转换成十进制
      console.log(b);   //输出10
	  console.log(a.toString(8));    //转换成八进制,输出12
	  console.log(a.toString(16));    //转换成八进制,输出a
	  console.log(a.toString(2));    //转换成八进制,输出1010
      console.log(typeof b);    //输出string

几乎每一个值都有toString(),但是null 和 undefined 没有,因为比如null的值和类型都是null,这时可以用string()

String(要转的内容)

 var b = String(a);

Boolean转换

Boolean(要转的内容)

除false、“”(空字符串)、0、NaN、undefined,其余任何值都会转换成true,注意如果是“false”,则输出为true

隐式转换

1、隐式转换成数字
直接在要转换的内容前加上+
例如:var a = “123”;
a = +a; 输出为123,number
a = a-1; 输出为123,number
a = a*1; 输出为123,number
a = a/1; 输出为123,number
a = a%1; 输出为123,number
2、隐式转换成字符串
var a = 123;
a = a + “”;
3、隐式转换成Boolean
var a = 123;
a = !a

调试

1、打开浏览器的开发模式
2、找到sorcer,并且找到要查看的代码
3、点行号,打断点
4、刷新页面
5、鼠标放在相应已经运行过的变量上,会显示相应的值
6、
在这里插入图片描述
7、当进入js内部代码时,可以按这个返回到刚才的地方,相当于F10
在这里插入图片描述

if

 If (boolean){
	语句1;
 }else{
 	语句2;
 }

 If (boolean){
	语句1;
 }else if (boolean){
	语句2;
 }else{
	语句3;
 }

Switch case

作用于if else 一样 switch判断相等的时候用的是===全等,并且不要忘记写break;否则会全部执行

 switch (变量){
 	case 变量的值1:
		代码块1;
		break;
 	case 变量的值2:
		代码块2;
		break;
 	case 变量的值3:
		代码块3;
		break;
	 default:   (可写可不写,不写的话,不满足任何上面情况时直接break)
		默认代码块;
		break;
 } 

三元运算符

Boolean表达式?操作1:操作2;

循环语句

 1、while(boolean){}
 2、do{}while(boolean)
 3、for(var i =1;i<=100;i++){}

获取当前日期

var date = new Date();  //获取当前日期
var week = date.getDay();    //获取星期,数字0-6,0表示星期日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值