js基础
2020-11-21 本文已影响0人
安掌门dear
javascript语法
一、聊聊学习想法
- 本文章来自拉勾教育大前端,终于进入javascript模块了,也是前端学习者最重要的一门语言了,前端不管入门还是进阶,一定都要有知识体系建设的想法。从2019年到参加拉勾教育,一直都是处于自学的阶段,说真的,自学真的很困难,它不会像拉勾那样有整套学习体系,知识点概况全面。首先HTML、css、Javascript这三样真的很重要,不用去管那些花里胡哨的框架,因为框架是在不断迭代的,而这三样却是最基础的,无论前端怎么变化,只有打好这个基础,就等于打开了前端世界的钥匙。第二个就是无法利用所学的东西,说到这个就可以提下开发项目经验问题,所谓读万卷书不如行万里路,实际经验才是总结自己不足,检验自己的最好磨刀石。
二、笔记
javascript是什么
- 运行在客户端的脚本语言,用来给HTML增加动态功能
- 由三部分组成,ECMAScript、DOM、BOM
alert()
- 在浏览器弹出一个警示框,内容可以自定义
- 作为一个函数执行,必须在后面添加小括号,可以传递参数
- 所有特殊功能符号必须是英文字符,js对换行、缩进、空格也不敏感
- 如果js中没有控制结构,代码都是从上往下,从左往右加载的
prompt()
- 弹出一个对话框,可以在输入框根据提示输入内容
- prompt语句也是js内置的一个功能,有两个参数进行传递
prompt("请输入您的年龄","18");
console.log()
- 在控制台审查元素中查看,可以在控制台,书写语句,执行
- js 有一个内置对象 console,内部封装了大量的属性和方法(函数),可以通过给
console 对象打点调用方法名()、属性名方式去执行。有一个叫做 log(日志)方法,可以
实现参数位置自定义内容在控制台输出
字面量
- 表达一个固定值的表示法,比如:数字、字符串、undefined、布尔类型
整数
- 十进制是最基本的数值字面量格式,可以直接在代码中输入
- 十六进制的前缀是0x或0X。后面可以包含数字(0-9)和字母a~f或A~F
- 八进制中,如果以0开头,每个位数有超过0-7直接的数字出现,强制忽略前面的,直接讲后面数当成十进制
- 在进行算术计算时或者参与程序,所有八进制和十六进制的数字都会被转换成十进制
浮点数
- 浮点数不区分进制,都是十进制,如果浮点数大于0小于1,可以省略小数前面的0
infinity 无穷
- 计算机计算能力有限,高于最大计算值显示正无穷,低于最小计算能力显示-infinity
- 最小值:Number.MIN_VALUE,这个值为: 5e-324
- 最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
NaN
- 表示不是一个正常的数,但还是number类型的数字
- NaN与任何值不相等,包括本身
- isNaN():判断一个数据是不是一个NaN,返回布尔值
字符串字面量
- 组成:字母、汉字、特殊符号、空白
- 用一对单引号或者双引号构成的。引号中间可以有任意个字符或者空
转义符号\
- \n 换行 \t Tab制表 ' 单引号 " 双引号 \ 反斜杠
变量
- 变量相当于一个容器,内部可以存储任意类型的数据
- 使用var关键字进行定义,后面加一个空格,自定义变量名
变量的命名规范
- 由字母、数字、下划线、¥符号组成,不能用数字开头,区分大小写
- 不能是关键字和保留字,变量名是有意义的,遵循驼峰命名法
变量赋值
- 变量定义后,如果没有进行赋值,内部默认存储值叫undefined
数据类型
简单数据类型
- Number: 数字类型,不区分整数、浮点数、特殊值
- String:所有字符串
- undefined:未定义
- Boolean:只有true和false两个字面量,必须是小写,ture为1,false为0
- null:本身是个数据,表示一个空对象指针
object:复杂数据类型
检测数据类型
- 使用typeof进行数据检测
- typeof(null)返回的是object类型
数据类型转换
转换成字符串类型
- 数据.toString()方法和String():转换成字符串类型
- toString()无法转换null和undefined
- + 号拼接字符串方式
console.log(true.toString());
console.log(String(23));
Number():转换成数字类型
- 字符串:纯数字字符串转为对应数字,空字符串和空白字符串转为0 ,非空非纯数字字符串转为 NaN
- 布尔值:true 转为 1,false 转为 0
- undefined:转为 NaN
- null:转为 0
- parseInt():字符串转换整数方法
- 可以讲浮点数转成整数,去掉小数部分
- 将字符串转为整数数字
- parseFloat():字符串转换成浮点数
var num = parseInt(prompt("请输入你今年的年龄"))
Boolean():将数据转换成布尔类型
- 转型函数 Boolean() 可以用于任何数据类型,将其他数据类型转为布尔类型的值
- 转为 false :NaN、0、“”空字符串、null、undefined
- 转为 true :非0 非NaN数字、非空字符串
操作符
算术运算符(+ - * / %)
- 先算乘除取余、再算加减,有小括号先算小括号
- NaN参与的运算:得到的结果都是NaN
- 隐式转换:所有数据参与数学运算,其他数据类型自动转换成数字类型,再参与运算
比较运算符
- 比较他的操作数并返回一个布尔类型值,运算结构要么是true,要么是false
- == 相等,只判断大小是否相等,不判断数据类型
- === 全等,数据类型和值的大小都相等
- null 的判断比较特殊:null 与 0 判断时,相等判断为 false,>= 和 <= 判断为 true
逻辑运算符
- 常用于布尔类型值。&&:与,都真为真,有假为假、||:或,有真就真,都假才假、!:非,非真既假,非假既真
- 逻辑运算顺序: 非、与、或
- 并不是所有逻辑运算返回结果都是布尔值,其他数据参与得到的就是数据本身
赋值运算符
- = 等于
- += 加等于
- -= 减等于
- *= 乘等于
- /= 除等于
- %= 取余等于
- ++ 递加
- -- 递减
一元运算符: ++和--
- a++在参与程序中先参与,后自加
- ++a在参与程序过程中先自加,后参与
运算优先级
1.()优先级最高
2.一元运算符 ++ -- !
3.算数运算符 先* / % 后+ -
4.关系运算符 > >= < <=
5.相等运算符 == != === !==
6.逻辑运算符 先&& 后||
7.赋值运算符
流程控制
- 通过一些特殊结构可以让js代码加载时,要么跳过一部分不加载,或者可以循环加载一段代码
- 一般语句以分号结束,特殊的结构除外
if语句
- if通过某个指定的判断条件,决定走哪个分支的代码
- condition expression: 条件表达式,参与程序过程中强制得到一个布尔值执行结果
- statement:结构体中执行都执行,不执行都不执行
if(condition expression){ statement1; }else{ statenemt2; }
- 多行分支代码如下:
var num = parseFloat(prompt('请输入你的成绩')); if (num >= 85) { alert('优秀'); } else if(num >= 75 && num < 85) { alert('良好'); } else if(num >= 60 && num< 75){ alert('及格'); }else{ alert('不及格'); }
三元表达式
- boolean-expression ? true_value : false_value;
- boolean_expression:布尔表达式,表达式在参与三元运算中必须求得一个布尔类型的值,要么是 true,要么是 false,结果作为判断依据,判断到底去:前面的值还是后面的值
- true_value:布尔表达式的值为真时,三元表达式的结果
- false_value:布尔表达式的值为假时,三元表达式的结果
- 多用于给变量赋值根据条件二选一的情况
switch语句语法
-
多用于给一个表达式去匹配多种固定值可能性的情况
-
default:相当于if语句中的 else,否则的情况,如果前面的 case 都不匹配,执行 default 后面的语句。
switch (表达式) { case 值1: 结构体1; break; case 值2: 结构体2; break; …… default: 结构体n; break; }
循环语句
for循环
- for 循环是一种前测试循环语句,在反复执行一段代码之前,都要先测试入口条件,如果条件为真,可以继续循环,如果条件为假,必须跳出循环不再执行。
for (var i=1; i <= 100; i++){ console.log("这是上课第"+ i + "天"); } console.log("毕业啦;")
do while循环
- do while 循环是一种后测试循环语句,会先执行一次结构体,执行完后才会去判断入口条件,如果条件为真能够继续下一次循环,如果条件为假跳出循环。
var i = 1;
do{
console.log(i);
i++;
}while(i <= 10)
while循环
- while 循环是一种前测试循环语句,在执行循环体之前都要测试入口条件,条件为真继续执行,条件为假直接跳出循环。
while(条件表达式){ 循环体; }
穷举思想
- 一种解决问题的方法,将所有的需要数据所在的范围内所有的数据都一一列举出来,再根据规律的条件对所有这些数据进行筛选,这种方式就是穷举法。
累加器
- 有时候需要的不是每个数据是什么,需要得到所有数据的加和,必须想办法将所有的数据的和存起来,就用到了累加器
var mul = 1; for(var i = 10; i>=1; i--){ mul *= i; } console.log(mul);