JavaScript基础语法

2019-05-07  本文已影响0人  小努努努力

js是从上到下,从左到右执行的

一:变量

1.命名规则:必须由字母,下划线,数字和$符号组成,不能以数字开头。

2.不能是关键字和保留字。例如: for,while.

3.区分大小写的

4.命名规范:名字必须有意义,遵守驼峰命名法,首字母小写,后面单词的首字母要  大写,例如:         userName userPassword

例:var age = 18;


二:数据类型

简单数据类型:Number String Boolean Undefined Null

Number类型:

十进制: 0-9 例:var num = 10; 

十六进制: 0-9  A-F A=10 B=11,C=12,D=13,E=14,F=15.例:var num = 0xA;

八进制:基础数字:0-7 例:var num = 010;

浮点数:var n =5e-324; //科学计数法 5乘10的-324次方。

浮点数最高精度是17位小数,不要判断两个浮点数是否相等。

浮点数最大值 :Number.MAX_VALUE ,值为:1.7976931348623157e+208

浮点数最小值Number.MIN_VALUE。值为5e-324

无穷大:Infinity 无穷小:-Infinity


String类型:

var msg = '好好学习'  var ,msg = "好好学习"

单引号和双引号不能混用。

\n 换行

\t 制表

\b 空格


Boolean类型:

true和false,区分大小写

计算机内部存储:true为1,false为0;


Undefined Null:

1.Undefined表示一个声明了没有赋值的变量,变量只声明的时候值默认是Undefined

2.Null表示一个空,变量的值如果为null,必须手动设置。如果一个变量的值是null,说明变量是有值的,是空。 

复杂数据类型:Object


三:获取变量的类型

typeof

例:var age = 18;

var name = 'wyn';

console.log(typeof age);  //Number类型

console.log(typeof name); //string类型

var result = typeof name;

console.log(typeof result);//typeof返回的结果是string


四:字面量

在源代码中一个固定值的表示法。

数值字面量:8,9,10

字符串字面量:‘好好学习’,“好好学习”

布尔值字面量:true,false


五:注释

单行注释:  //被注释的单行内容

多行注释: /* 被注释的多行内容*/


六:数据类型转换

谷歌浏览器内,字符串颜色是黑色的,数值和布尔类型颜色是蓝色的,Undefined和Null是灰色的。

转换成字符串类型:

1: toString()方法

var num = 18;

var isRight = true;

 console.log(typeof num.toString());

console.log(typeof isRight.toString());   //  用typeof获取类型,用toString转换为字符串

2:string()方法

null和Undefined无法使用toString方法,var a = null; console.log(a.toString());报错,不能读取属性

var num = 18;

var isRight =true;

console.log(String(num));//转换为字符串

console.log(String(isRight));

3:字符串拼接转换方法

var num = 18;

var isRight = true;

console.log(typeof (num + ' ')); //里面加小括号改变运算顺序,优先执行小括号内部内容。

console.log(typeof (isRight + ' '));

其他类型转换为数值类型:

1:Number()方法

Number()把任意值转换为数值

var str = 'abc';

var isRight = true;

console.log(Number(str));  //返回结果是NaN,不是一个数字

console.log(Number(isRight));  //返回结果:1,计算机true是1

console.log(Number('123')); //字符串123转换为数字123;

console.log(Number('123abc')); //Number()吧字符串转换成数值类型的时候,如果字符串中有一个字符不是数字,返回NaN。

2:parseInt()方法,parse是解析,把变量解析为int,int是整数的意思。

parseInt()无法转换小数,到小数点结束

var str = '123';

var isRight = false;

console.log(parseInt(str));//字符串123转换为数字123;

console.log(parseInt(isRight));//paresInt无法把布尔类型转换为数值类型。返回NaN

var s1 = 'abc';

console.log(parseInt(s1));//返回NaN,paresInt无法把字符串转为数值。

var s1 = '123abc';

console.log(parseInt(s1)); 返回123,parseInt在转换字符串时候,如果遇到数字就会转换数字,如果遇到非数字就会返回。

var s2 = 'abc123';

console.log(paresInt(s2)); //返回NaN,如果字符串第一个值是非数字,返回NaN.

3:parseFloat()方法 

parseFloat()把数值转化为浮点数。

var str = '123.67';

var isRight = true;

console.log(paresFloat(str)); 

console.log(paresFloat(isRight)); //返回NaN,无法转换布尔类型。

var str = '123.12.123abc';

console.log(parseFloat(str)); //解析到第一个点,第二个点无法解析。

4:取正或者取负; + -

var num = -5;

console.log(num);

var str = '123';

console.log(+str); //返回123,-号返回-123

字符串如果是123abc返回NaN.可以转换布尔类型。

转换成布尔类型Boolean()

Number和null转换后为false

转换后为false的情况:null undefind ' '空字符串 0 NaN五种情况

其他转换为true.


七:操作符

算数运算符:

+ - * / % 加 减 乘 除 取余数

var x = 5; var y = 10;

console.log(x + y);

console.log(x / y);

console.log(x * y);

console.log(x % y) //输出5

console.log(x / 0) //无穷大

console.log(x % 0) //NaN

一元运算符:

只有一个操作数的运算符是一元运算符。有两个操作数的运算符叫作二元运算符(如:5+6)

前置++  自身加1  :++5

var num = 5; console.log(++num) //5自身+1输出6。++num先让自身+1,然后再返回表达式的结果。

var num1 = 7;

console.log(num + ++num1); //前置++先自身加1再参与运算,输出6+8=14

前置--同前置++

后置++  :5++ 

先返回表达式的结果num,然后再对num自身加1

var num = 5;

console.log(num++);//先返回num结果5,然后在对num自身加1,所以输出5

console.log(num); //自身加1之后才会输出6

var num1 = 7;

console.log(num + num1++); //num返回6+num17=13;

console.log(num1); //表达式输出完之后num1+1,执行结果是8.

例:

var a = 1; var b = ++a + ++a; console.log() //++a先执行自身+1,然后再返回表达式的结果,第一个a是2,第二个++a在第一个++a基础上再+1,是3,所以输出2+3=5;

var a =1; var b = a++ + ++a; console.log(b);//a++先返回表达式结果1,再执行+1,a++返回结果之后是2,++a在2基础上再+1,所以输出1+3=4

var a = 1; var b = a++ + a++; console.log(b);//输出1+2=3

var a = 1; var b = ++a + a++; console.log(b);第一个a先返回表达式结果是2,第二个a返回表达式结果2运算,输出2+2=4;

逻辑运算符:(布尔运算符)

&&(逻辑与):两个操作数同时为true,结果为true,否则都是false,与是并且的意思。是二元运算符

例:var a =true; var b =true; console.log (a && b ); //a等于ture并且b等于true时结果才是true.

|| (逻辑或):两个操作符有一个为true,结果为true,否则为false,或是或者的意思。 是二元运算符

例:var a =true; var b =true; console.log (a || b ); //a或者b有一个为true,结果就为true,两边都为false时结果才为false.

! (逻辑非) :取反 是一元运算符

var a = true; console.log ( !a )//对a进行取反,输出结果是true.

关系运算符:(比较运算符)

< > >= <= == != === !== 

< > >= <=是比较大小的

var a = 10; var b = 5; 

console.log(a > b)//返回true console.log(a < b)//返回false

= != === !== 是比较相等的

console.log ( a == b );//输出false

console.log( a !=b);a不等于b,输出true

-------------------------------------------------------------

var a = 10; var b = '10';

console.log (a == b);//输出true,先把字符串10转换为数值再判断,两个等号是判断值是否相等。

console.log(a === b);//输出false,三个等号先判断类型是否一致,类型不一一致为fase,只有值和类型都一致才返回true.

!=不等于,只要判断值不相等就返回true,

!==,判断值和类型都不相等才会返回true

赋值运算符

= += -= *= /= %=

var num = 5; // 把5这个常亮赋值给变量num

vae num1 = num * 5; //把运算的结果赋值给num1

num1 +=5;num1 -=5;//简化

运算符优先级

优先级从高到低

1. ( ) 优先级最高

2.一元运算符 ++ -- !

3.算数运算符 先* / %,后+ -

4.关系运算符 > >= < <=

5.相等运算符 == != === !===

6逻辑运算符 先&& 后||

例1:4 >= 6 || '人' != '阿凡达' && !(12 * 2 == 144) && true    //返回true

例2:var num = 10;

5 == num / 2 && (2 + 2 * num).toString() === '22'  //返回true

八:流程控制

顺序结构

代码从上到下依次执行就是顺序结构

分支结构

根据不同情况,执行对应代码

if (/*表达式条件*/){

//执行语句

}else{

//执行语句

}

三元运算符:表达式1 ? 表达式2 : 表达式3

switch语句里面相等性判断是===,判断值和类型是否相等。如果不加break会有穿透效果。

循环结构

重复做一件事情

三种:while, do-whild, for

while语句:当循环条件为true时,执行循环体,为false时,结束循环。

while (循环条件) {

// 循环体

}

for(初始表达式1;条件表达式2;自增表达式3){

//循环体

}

九:数组

数组可以存储很多项,有顺序,很多项形成一个集合Array是一个数组 的字面量。

var names = ['zs', 'ls', 'ww','zl',‘ ’,‘123’];  //' '里面不算长度

console.log ( names [0] ); //获取第一项

console.log ( names [1] ); //获取第二项值

console.log ( names [111] ); //不存在的索引返回undefined

用索/下标可以获取数组中的数据。数组中的索引是从0开始

数组中存储的数据类型可以不一致,可存储任意类型

console.log (names.length)//获取数组长度

console.log ( names [0] )//获取数组中第一个元素

console.log ( names [names.length - 1] );  //数组名.length-1可以获取数组中最后一个元素

 names[0] = 'xxx' 修改数组中的第一个元素,根据下标修改。

names[6]='xxx修改不存在的数组,会给数组增加一项。

names[222]='xxx'; 给数组动态加入值,跳过的值是undefined

获取数组中的每一项(遍历数组)

for (var i = 0; i < nams.length; i++ ) {

console.log(names[i]);

}

反向遍历数组

for (var i = names.length - 1; i >=0; i-- ) {

console.log (names[i] )}

给空数组加值

var scrores = [];

for (var i =0;i < 10;i++) {

scores[i] = i;

}

console.log(scores);

清空数组:scores.length = 0;


上一篇下一篇

猜你喜欢

热点阅读