回顾一周的学习js

124 阅读5分钟

# **1、JavaScript概述:

什么是:简称js,是一个运行在【js解释器】中的一个【解释型】【弱类型】【面向对象】脚本语言 1、js解释器:

1、浏览器自带js解释器

2、以后我们确实也会自己安装一个js解释器 - Node.js

1、js的三种类型

编译型:在运行程序之前,需要先检查程序是否有报错,如果有报错直接不运行,比如:java、c#、c++... - 严格

   解释型:在运行程序之前,不需要检查程序是否有报错,直接运行,碰到错误了才会停止,比如:JavaScript、php... - 自由

 

3、弱类型:变量想保存什么数据类型就保存什么数据类型,由数据决定了数据类型是什么,比如:javascript、php... - 自由

 

   强类型:变量能保存什么数据类型,需要提前声明出来,由数据类型来决定了能保存的数据是什么,比如:java... - 严格

2、JavaScript特点:

1、用任何文本编辑器编写代码:HBuilder、VSCode、记事本开发都可以...

2、解释型

3、弱类型

4、面向对象:以后我们会经常见到带有一种写法:万物皆对象

对象名.属性名;

对象名.方法名();

3、JavaScript如何使用:

1、js的引入方式有2种:

1、在HTML中书写一个script标签: - 仅用于临时测试

 

2、创建一个xx.js文件,再在HTML进行引入 - 正式开发中

如何引入:

 

建议js放在我们的HTML和CSS的后面,最好是最后

 

2、打桩输出:疯狂打桩:非常重要的一种找错方式:3种

*1、在控制台输出日志:console.log(想要输出的内容);

2、在页面上输出:document.write(想要输出的内容); - 可以识别标签,缺点:如果有点击事件触发document.write会导致页面原来的HTML全被覆盖掉,那你写的网页白写了

3、用警告框输出:alert(想要输出的内容); - 缺点:会卡主页面,只能看到白板

 

 

3、变量和常量

  *变量:简单来说就是一个值可以发生变化的数据/量。

   何时:如果以后某一个数据我们要反复使用,最好都把他先保存成一个变量,以后只需要使用变量名相当于就是在使用变量的值;

   语法:var 变量名=值;

   特殊:#### 1、面试题:内存和变量有区别吗?****

********硬盘:保存数据/文件,机械硬盘和固态硬盘 - 外存

********CPU:中央处理器 - 用于计算的

********内存:是程序在运行过程中【临时】用到的数据

********内存空间:实际保存数据的地方

********内存地址:内存空间的一个门牌号:0x000012edae21fsdhgi11,往往会取一个别名(变量名),以后使用这个变量相当于就在拿内存空间里面的数据

2)、变量名其实不是随便的

1、不能以数字开头

2、建议:尽量的要见名知意:

以英文为主:比如var name="xx";

 

var xingming="某某某"; - 逼格(变量名、打字速度)很低,逼格其实很重要。 最不推荐:var aa; - 没有见名知意的效果

  var ab;

  var ac;

3)、使用驼峰命名法更加推荐

4、name是一个关键字,不管你保存的数据类型是什么,都会悄悄的变成一个字符串

5、千万不要把关键字当做变量名

 

3、如果你想要创建多个变量,没有必要每个都写var,中间的变量都可以省略掉var关键字,中间用,间隔,最后一个还是用;结束

    常量:一旦创建后,值不允许被修改了

    何时:用途和变量几乎一致,几乎不用,现实中用的少的,代码中也用的少

  生活中的常量:

1、pi:3.14158926;

2、一年一定是365/366天

3、一天24个小时

...

    语法:const 常量名=值;

 

4)、算术运算符:+ - * / %:前四个运算符和小时候学习的一模一样

%:取余,俗称模,两个数相除,不取商,而取除不尽的余数

num1%num2;

   作用:

1、*判断某个数字的奇偶性:num%2 如果结果为0说明是偶数,如果结果为1说明是基数

2、取出一个数字想要的后n位

1234%10 -> 4

1234%100 -> 34

1234%1000 -> 234

   特殊:

1、算数运算符具有隐式转换(悄悄地,我们程序员看不见的),默认:都是转为数字在运算

   特殊在+运算,如果碰到了一个字符串,两边都会悄悄的转为字符串,变成了一个拼接操作

2、-*/%:其实字符串也能转为数字,但是前提是一个纯数字组成的字符串,但凡包含一个非

   数字字符,则为NaN:纯粹的垃圾:Not a Number:直译,不是一个数字,但是确实是数字类型,但是不在三界之中

全是缺点:

1、NaN参与任何算数运算结果仍为NaN

2、NaN参与任何比较运算结果都为false  

5)、数据类型:

原始/基本/值类型:5个

1、String - 字符串,取值有无数个,但是必须写上"" 或 ''

2、Number - 数字,取值有无数个,直接书写数字即可

3、Boolean - 布尔,取值只有2个true(真,对)和false(假,错) - 多半用于表示判断的结果

4、Undefined - 变量如果声明了,但是没有赋值的话,默认值就为undefined,只有这一个取值 - 垃圾:没有任何用处

5、Null - 空,取值也只有一个null,释放内存/变量


  1、用户输入框:prompt("提示文字","默认值");

  2、分支结构:根据条件,选择一部分代码执行,走了一条路,就不走别的路

语法:

1、一个条件,一件事,满足就做,不满足就不做

   if(条件){

操作

   }

 

  2、一个条件,两件事,满足就做第一件,不满足就做第二件

if(条件){

操作;

   }else{

默认操作;

}

 

  3、多个条件,多件事,满足谁就做谁

if(条件1){

操作1;

   }else if(条件2){

操作2;

}else{

默认操作;

}

 

特殊:1、else if有多少个,随便你,看你的需求

      2、else其实可以省略,但是不推荐,因为如果条件都不满足,我的分支就白写了