从上帝视角看js基础知识点

本文全面介绍了编程基础知识,包括执行环境、变量和常量的概念及使用规则、数据类型及其转换、运算符的种类、选择与循环语句的语法、函数的创建与调用等。此外还详细解释了变量与函数的作用域,并探讨了递归、匿名函数和常见系统函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复杂的事情简单做,简单的事情简单做

涉及知识点

  • 执行环境
  • 变量和常量
  • 数据类型
  • 数据类型转换
  • 运算符
  • 选择语句
  • 循环语句
  • 函数创建与调用
  • 变量的作用域
  • 函数的作用域
  • 递归
  • 匿名函数
  • 系统函数
  • 对象
  • 数组
  • 字符串对象
  • 匹配模式
  • Math对象
  • Date对象
  • Number对象
  • Boolean对象
  • 错误处理

以上罗列的,其实涉及的知识点并不多,先从全局视角看待,再一一看其中涉及到到的实用内容,也不过如此而已。

一、执行环境

客户端和服务器端 , 客户端一般指我们的程序运行在的浏览器,服务端指借助nodeJS使程序跑在服务器上。

二、变量和常量
  • 变量
    var 声明,命名规则: 不能以数字开头,不能使用关键字和保留字
  • 常量
    const 声明, 规则: 声明后就不能再重新赋值
三、数据类型
  • 原生类型
    数值型、字符串型、布尔型、未定义undefined、null空
  • 引用类型
    数组,对象,存地址,通过地址引用真实存储的数据
四、数据类型转换
  • 隐式转换
    底层程序代劳, 运算时转换
    1.加法的转化

    数值型 + 字符串 = 字符串
    数值型 + 布尔型 = 数值型
    布尔型 + 字符串 = 字符串
    2.乘除减
    通通转为数值型

  • 强制转换
    通过内置的方法,手动转换
    1.转为整型 parseInt
    2.转为浮点型 parseFloat
    3.转为数值型 Number
    4.转为字符串型 toString()
五、运算符

记忆下就好了,没什么的

  1. 算数运算符 + - * / % ++ –
  2. 比较运算符 > < >= <= == != === !==
  3. 逻辑运算符 || && !
  4. 位运算符 & | ^ << >>
  5. 赋值运算符 = += -= *= /= %=
  6. 三目运算符 条件表达式 ? 语句1 : 语句2
六、选择语句

就 if else 和 switch case 语句

	if(条件表达式){
		语句
	}
	if(条件表达式){
		语句1
	}else{
		语句2
	}
	if(条件1){
		语句1
	}else if(条件2) {
		语句2
	}...
	switch(表达式){
		case 1:
		语句;
		break;
		...
		default;
	}
七、循环语句

就while 和 for 语句

	while(循环条件){
		循环体
	}
	do{
	 循环体
	}while(循环条件);
	for(初始值,循环条件,i的变化) {
		循环体
	}
八、函数相关
  • 创建
function 函数名称(形参){
	函数体;
	return 返回值
}
  • 调用
    函数名称(实参)
九、变量的作用域
  • 全局作用域: 全局变量
  • 函数(局部)作用域: 局部变量
  • 变量提升(预加载) 使用var 关键字声明的变量提升到所在作用域的最前边
十、函数的作用域
  • 全局作用域
  • 函数(局部)作用域
  • 函数提升
十一、递归 recursion
  • 在函数的内部调用自身
  • 结合关键字return
  • 具有跳出条件
十二、匿名函数
  • 创建 函数表达式
  • 自调用
   (function(a){
   	 函数体
   })()
  • 回调函数
	sort(function(a,b){
	   return a-b;
	})
十三、系统函数
  • encodeURI 编码
  • decodeURI 解码
  • parseInt 转整
  • parseFloat 转浮
  • isNaN 判断是否NaN
  • isFinite 判断无限
  • eval 运行环境
十四、对象
  • 分类: 三大类 内置、宿主、自定义对象
  • 自定义对象:
  1. 对象字面量
  2. 内置构造函数
  3. 自定义构造函数
  • 遍历对象 for… in
  • 检测是否含有属性
  1. ‘属性名’ in 对象
  2. 对象。hasOwnProperty(‘属性名’)
  3. 对象.属性名 === undefined
  • 对象中的方法
	{
		name:'tom',
		say: function(){}
	}
十五、数组
  • 创建:
  1. 数组字面量
  2. 内置构造函数 new Array()
  • 数组的访问:
  1. 数组[下标]
  2. 数组长度 Array.length
  • 遍历数组元素: for 循环和. for…in循环
  • 数组方法
    不要太简单哦,用一下就会了
  1. toString 转为字符串
  2. join 指定分隔为字符串
  3. concat 连接组合
  4. slice(start,end) 切片
  5. splice(start,count,value) 删除 ,追加,替换
    10.reverse 反转
  6. sort 排序
  7. push 后追加
  8. pop 后弹出
  9. unshift 前追加
  10. shift 前弹出
十六、字符串对象
  • 创建: new String()
  • 转义字符: \
  • 方法:
  1. length 长度
  2. charAt() 指定位置的字符
  3. indexOf() 指定字符所在位置
  4. lastIndexOf() 从后面开始查找指定字符所在位置
  5. toUpperCase() 转大写
  6. toLowerCase() 转小写
  7. slice(start,end) 切片
  8. substr(start,count) 按指定长度切片
  9. substring(start ,end) 按指定位置切片
    10.split() 按指定符号切分为数组
  10. String.formCharCode() 将编码转字符
十七、匹配模式
  • replace() ig
  • match()
  • search()
十八、Math对象
  • PI 圆周率
  • abs() 取正
  • ceil() 向上取整
  • floor() 向下取整
  • round() 四舍五入
  • max() 取最大值
  • min() 取最小值
  • pow(2,3) 取幂值
  • random() 随机数
十九、Date对象
  • 创建:
    哪个简单选哪个
    new Date(‘2099/08/18 9:11:30’);
    new Date(2018,10,18,9,10,30);
    new Date();
    new Date(1000*60)
  • 获取日期时间:
  1. getFullYear 年
  2. getMonth 月
  3. getDate 日
  4. getHours 小时
  5. getMinutes 分
  6. getSeconds 秒
  7. getMillseconds 毫秒
  8. getDay 某周的一天
  9. getTime 返回距 1970 年 1 月 1 日之间的毫秒数
  • 设置日期时间
  1. setFullYear 年
  2. setMonth 月
  3. setDate 日
  4. setHours 小时
  5. setMinutes 分
  6. setSeconds 秒
  7. setMilliseconds 毫秒
  8. setTime 设置距 1970 年 1 月 1 日之间的毫秒数
  • 本地化字符串
  1. toLocaleString 根据本地时间把 Date 对象转换为字符串
  2. toLocaleDateString 根据本地时间把 Date 对象的日期部分转换为字符串
  3. toLocaleTimeString 根据本地时间把 Date 对象的时间部分转换为字符串
二十、Number对象
  • 创建: new Number(数据)
  • 属性/方法:
  1. Number.MAX_VALUE 最大数值
  2. Number.MIN_VALUE 最小数值
  3. toFixed(n) 舍五入为指定小数位数
  4. toString() 转为字符串
二十一、 Boolean对象
  • 创建: new Boolean()
  • 方法: 就一个 toString()
二十二、 错误处理
  • 语法错误, 引用错误,类型错误,范围错误
  • 处理错误
	try{
		尝试执行可能出现错误
	}catch(err){
		err// 产生错误的信息 
		执行其他替代方案
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值