JavaScript基础语法

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;






最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342