如何整理JavaScript中值得收藏的学习笔记和总结分享?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2593个文字,预计阅读时间需要11分钟。
今天为大家带来了一份值得收藏的JavaScript初级学习笔记,包含很多小知识,快码住看看吧!
什么是JavaScript?JavaScript是一种运行在客户端的脚本语言。
基本输入输出语句功能语句打印输出
今天给大家带来了值得收藏的JavaScript初级学习笔记,含有很多小知识,赶快码住看一看吧!
什么是JavaScript?
JavaScript是一种运行在客户端的脚本语言
- 小理论:
console.log可以输出任何类型的数据,alert只能输出String类型的数据,且只能输出第一个数据,如果alert输出的是对象会自动调用toString()方法。
声明变量 var (name)
- 一些注意事项
一次声明多个变量的时候必须用逗号进行隔开,而且必须换行,写在同一行的多个声明变量会无效。
未初始化的变量直接输出结果是undfined
变量的命名规范: 字母数字下划线美元符号(不以数字开头)
变量初始化中,单引号和双引号没有区别
JavaScipt是一种> 动态/弱类型 语言
js的变量数据类型是只有程序在运行过程中,根据等号右边的值来确定的,也被称为动态数据类型
常用语句:
IsNAN() //判断值是否为非数字 //转义符: \n换行 \t缩进 \b空格 str.length //获取字符串长度
小理论
undefined和数字相加,结果是NaN
null+1等于1
prompt取过来的值是字符型.
对于prompt取值做加法,有以下加法案例:
//demo onevar a, b ;a = parseInt(prompt('请输入第一个值')); b = parseInt(prompt('请输入第二个值')); var c = a + b; alert (c); //demo two var a = prompt('请输入第一个值'); var b = prompt('请输入第二个值'); var c = Number(a) + Number(b); alert (c);
字符串转换(chrom颜色为黑)
- 变量.toString()
- String()强制转换
- 隐式转换:+拼接
- 字符串模板拼接
我的年龄是${age}岁(注意反引号不要掉了)
数字型转换(chrom颜色为蓝)
- Parselnt()转换为整数型
- parseFloat()转换为浮点型
- Number()强制转换函数
- 隐式转换:- * / 算术运算隐式转换
布尔型转换(chrom颜色为蓝)
- 空、否定会被转换为false:如 ‘’、 0 、 NaN 、 null 、 undefined
其余全部为true
优先级:
括号
单目 (右结合右至左)
算数*/%
位移
关系
相等
逻辑&^| &&||
赋值
逗号
- if没什么好说的
- switch注意事项:
case的值判断是全等运算判断
- 创建数组的方式
1.利用new创建数组
var arr = new Array() //注意的是,new A必须大写 var arr = new Array(2); //表示数据长度2 var arr = new Array(2, 3); //表示里面有两个元素是2和3
2.利用字面量创建数组
var arr = [];
3.获取数组的长度
arr.length
也可通过arr.length = (Number)的方式来修改数组长度
注意点:
- 多余的地址/空地址/未定义数组元素默认值为undefined
拿C语言举例,字符数组默认后面都是有一个\0结束的,而下标越界会导致程序错误,JS这样设置的好处就是可以不定义数组长度,或者预先给到地址空间。
4.实现数组迁移,从而不需要定义索引/下标变量
newArry[new.Arry.length] = arr[i++];数组的常用内置对象
1.判断数组
// var arr = []; arr instanceof Array //Instanceof运算符判断是否为数组 Array.isArray(arr) //isArray判断是否为数组
2.添加数组元素
arr.push() //在数组最后添加一个或多个数组元素 arr.unshift() //在数组最前面添加一个或多个数组元素
实用:push可以实现给新的空数组赋值,且push和unshift都有返回值,为新数组的length
3.删除数组元素
arr.pop() //删除数组中最后一个元素 arr.shift() //删除数组中第一个元素
有返回值,为删除的元素值
4.翻转/逆置数组
arr.reverse()
5.数组排序
arr.sort() //对个位数进行冒泡排序
理论:为什么说是对个位数进行冒泡排序,因为sort比较数组会先把数组转换成字符串,所以77会比8更先,但是如果有了比较函数(compareFunction)的指定,就能实现按要求排列
arr.sort解决方案
arr.sort(function(a,b)) { return a - b; //return b - a
a - b为升序排序,b - a为降序排序
6.查找数组
arr.indexOf('word');
从前往后查找返回数组满足条件第一个元素的索引号,如果找不到则返回-1
arr.lastIndexOf('word');
从后往前查找返回数组满足条件第一个元素的索引号,如果找不到则返回-1
7.转换成字符串
arr.toString() //数组转换成字符串 arr.join() //将数组转换成字符串,且括号内可以写分隔符,表示用什么符号格式进行分隔 arr.join('&')
Arguments 伪数组 只有在函数中能够使用
同样按照下标的方式存储数据,可以不定义长度实现形参接收
声明函数:
Function 函数名 () { }var 变量名 = Function () { }函数表达式(匿名函数)预解析:
就是把JS中所有的var和function提到当前作用域的最前面
变量预解析
提前所有的变量声明(不提赋值操作)函数预解析
提前所有的函数声明(不调用函数)
→ 所以要额外注意函数表达式和声明函数的预解析
- 如果形参多于实参,按前取;如果有实参没有被传值,默认是undefined
- Return返回一个值,但是如果return[ ] 且有多个表达式以逗号隔开,那返回值会是整个[]的 所有 运算结果
- !!如果函数没有返回值,那么返回的是undefined !!
- 在函数内部直接赋值的变量属于全局变量
- 函数的形参是局部变量
- 块级作用域: {} (es6新增,其他版本在括号里面定
义的变量也能在外面调用) - 作用域链:多个函数嵌套的时候会形成作用域链,子函数能访问父函数的块作用域
- 什么是对象?
对象是一组无序的相关属性和方法的集合(字符串,数值,数组,函数)
在其他语言中,类似 >结构体 >字典
创建自定义对象和对象属性、对象方法:
- 字面量创建
var obj = { name:'姓名', age : 999, //*方法*冒号后跟一个*匿名函数* printf:function() { console.log('hello world'); } }
记忆方法↓:
- 直接给对象名、属性冒号跟值+语句结束逗号
- 方法用冒号
- 取值:对象名.属性名 or 对象名[‘属性名’]
- 调用对象方法: 对象名.方法名();
- new object
var obj = new Object(); obj.name = '李昂'; obj.age = 999; obj.printf:function(){ console.log('hello world'); }
记忆方法↓:
- var对象名 = new Object (); 不加分号
- 对象名.属性 = 取值 + 分号
- 方法用冒号
- 取值:对象名.属性名 or 对象名[‘属性名’]
- 调用对象方法: 对象名.方法名();
3.构造函数
function Obj (Uname, Uage) { this.name = Uname; this.age = Uage; this.printf = function(infoms){ console.log(infoms); } }
记忆方法↓:
- 类似函数声明,但是构造函数函数名首字母必须大写,this.属性
- 方法用等号
- 构造函数必须得有变量传值,构造函数的方法也必须有变量传值
- 调用构造函数 var 变量 = new 构造函数名(传递的值)
var myobj = new Obj('李昂', '999');//可以理解为创建了一个变量指定了构造函数 console.log(myobj.name); console.log(myobj['age']); obj.printf('hello world');
new的执行过程
new构造函数会在内存中创建一个空的对象
this就会指向刚才创建的对象
接着依次执行属性、方法,并返回
新循环遍历
For (变量 in 对象){
}
这里的变量是属性值做遍历
属性的值的输出:consolo.log(对象[变量]);
程序员在for in 的变量喜欢写Key或者i
一些可用内置对象:
Math.PI //求圆周率 Math.max()//返回最大数值(如果无值返回负无穷大) Math.abc ()//取绝对值 Math.floor()//向下取整 Math.ceil()//向上取整 Math.round()//四舍五入(五特殊 往大了取)
- 随机数
Math.random() ;
- 返回一个随机浮点数
本文共计2593个文字,预计阅读时间需要11分钟。
今天为大家带来了一份值得收藏的JavaScript初级学习笔记,包含很多小知识,快码住看看吧!
什么是JavaScript?JavaScript是一种运行在客户端的脚本语言。
基本输入输出语句功能语句打印输出
今天给大家带来了值得收藏的JavaScript初级学习笔记,含有很多小知识,赶快码住看一看吧!
什么是JavaScript?
JavaScript是一种运行在客户端的脚本语言
- 小理论:
console.log可以输出任何类型的数据,alert只能输出String类型的数据,且只能输出第一个数据,如果alert输出的是对象会自动调用toString()方法。
声明变量 var (name)
- 一些注意事项
一次声明多个变量的时候必须用逗号进行隔开,而且必须换行,写在同一行的多个声明变量会无效。
未初始化的变量直接输出结果是undfined
变量的命名规范: 字母数字下划线美元符号(不以数字开头)
变量初始化中,单引号和双引号没有区别
JavaScipt是一种> 动态/弱类型 语言
js的变量数据类型是只有程序在运行过程中,根据等号右边的值来确定的,也被称为动态数据类型
常用语句:
IsNAN() //判断值是否为非数字 //转义符: \n换行 \t缩进 \b空格 str.length //获取字符串长度
小理论
undefined和数字相加,结果是NaN
null+1等于1
prompt取过来的值是字符型.
对于prompt取值做加法,有以下加法案例:
//demo onevar a, b ;a = parseInt(prompt('请输入第一个值')); b = parseInt(prompt('请输入第二个值')); var c = a + b; alert (c); //demo two var a = prompt('请输入第一个值'); var b = prompt('请输入第二个值'); var c = Number(a) + Number(b); alert (c);
字符串转换(chrom颜色为黑)
- 变量.toString()
- String()强制转换
- 隐式转换:+拼接
- 字符串模板拼接
我的年龄是${age}岁(注意反引号不要掉了)
数字型转换(chrom颜色为蓝)
- Parselnt()转换为整数型
- parseFloat()转换为浮点型
- Number()强制转换函数
- 隐式转换:- * / 算术运算隐式转换
布尔型转换(chrom颜色为蓝)
- 空、否定会被转换为false:如 ‘’、 0 、 NaN 、 null 、 undefined
其余全部为true
优先级:
括号
单目 (右结合右至左)
算数*/%
位移
关系
相等
逻辑&^| &&||
赋值
逗号
- if没什么好说的
- switch注意事项:
case的值判断是全等运算判断
- 创建数组的方式
1.利用new创建数组
var arr = new Array() //注意的是,new A必须大写 var arr = new Array(2); //表示数据长度2 var arr = new Array(2, 3); //表示里面有两个元素是2和3
2.利用字面量创建数组
var arr = [];
3.获取数组的长度
arr.length
也可通过arr.length = (Number)的方式来修改数组长度
注意点:
- 多余的地址/空地址/未定义数组元素默认值为undefined
拿C语言举例,字符数组默认后面都是有一个\0结束的,而下标越界会导致程序错误,JS这样设置的好处就是可以不定义数组长度,或者预先给到地址空间。
4.实现数组迁移,从而不需要定义索引/下标变量
newArry[new.Arry.length] = arr[i++];数组的常用内置对象
1.判断数组
// var arr = []; arr instanceof Array //Instanceof运算符判断是否为数组 Array.isArray(arr) //isArray判断是否为数组
2.添加数组元素
arr.push() //在数组最后添加一个或多个数组元素 arr.unshift() //在数组最前面添加一个或多个数组元素
实用:push可以实现给新的空数组赋值,且push和unshift都有返回值,为新数组的length
3.删除数组元素
arr.pop() //删除数组中最后一个元素 arr.shift() //删除数组中第一个元素
有返回值,为删除的元素值
4.翻转/逆置数组
arr.reverse()
5.数组排序
arr.sort() //对个位数进行冒泡排序
理论:为什么说是对个位数进行冒泡排序,因为sort比较数组会先把数组转换成字符串,所以77会比8更先,但是如果有了比较函数(compareFunction)的指定,就能实现按要求排列
arr.sort解决方案
arr.sort(function(a,b)) { return a - b; //return b - a
a - b为升序排序,b - a为降序排序
6.查找数组
arr.indexOf('word');
从前往后查找返回数组满足条件第一个元素的索引号,如果找不到则返回-1
arr.lastIndexOf('word');
从后往前查找返回数组满足条件第一个元素的索引号,如果找不到则返回-1
7.转换成字符串
arr.toString() //数组转换成字符串 arr.join() //将数组转换成字符串,且括号内可以写分隔符,表示用什么符号格式进行分隔 arr.join('&')
Arguments 伪数组 只有在函数中能够使用
同样按照下标的方式存储数据,可以不定义长度实现形参接收
声明函数:
Function 函数名 () { }var 变量名 = Function () { }函数表达式(匿名函数)预解析:
就是把JS中所有的var和function提到当前作用域的最前面
变量预解析
提前所有的变量声明(不提赋值操作)函数预解析
提前所有的函数声明(不调用函数)
→ 所以要额外注意函数表达式和声明函数的预解析
- 如果形参多于实参,按前取;如果有实参没有被传值,默认是undefined
- Return返回一个值,但是如果return[ ] 且有多个表达式以逗号隔开,那返回值会是整个[]的 所有 运算结果
- !!如果函数没有返回值,那么返回的是undefined !!
- 在函数内部直接赋值的变量属于全局变量
- 函数的形参是局部变量
- 块级作用域: {} (es6新增,其他版本在括号里面定
义的变量也能在外面调用) - 作用域链:多个函数嵌套的时候会形成作用域链,子函数能访问父函数的块作用域
- 什么是对象?
对象是一组无序的相关属性和方法的集合(字符串,数值,数组,函数)
在其他语言中,类似 >结构体 >字典
创建自定义对象和对象属性、对象方法:
- 字面量创建
var obj = { name:'姓名', age : 999, //*方法*冒号后跟一个*匿名函数* printf:function() { console.log('hello world'); } }
记忆方法↓:
- 直接给对象名、属性冒号跟值+语句结束逗号
- 方法用冒号
- 取值:对象名.属性名 or 对象名[‘属性名’]
- 调用对象方法: 对象名.方法名();
- new object
var obj = new Object(); obj.name = '李昂'; obj.age = 999; obj.printf:function(){ console.log('hello world'); }
记忆方法↓:
- var对象名 = new Object (); 不加分号
- 对象名.属性 = 取值 + 分号
- 方法用冒号
- 取值:对象名.属性名 or 对象名[‘属性名’]
- 调用对象方法: 对象名.方法名();
3.构造函数
function Obj (Uname, Uage) { this.name = Uname; this.age = Uage; this.printf = function(infoms){ console.log(infoms); } }
记忆方法↓:
- 类似函数声明,但是构造函数函数名首字母必须大写,this.属性
- 方法用等号
- 构造函数必须得有变量传值,构造函数的方法也必须有变量传值
- 调用构造函数 var 变量 = new 构造函数名(传递的值)
var myobj = new Obj('李昂', '999');//可以理解为创建了一个变量指定了构造函数 console.log(myobj.name); console.log(myobj['age']); obj.printf('hello world');
new的执行过程
new构造函数会在内存中创建一个空的对象
this就会指向刚才创建的对象
接着依次执行属性、方法,并返回
新循环遍历
For (变量 in 对象){
}
这里的变量是属性值做遍历
属性的值的输出:consolo.log(对象[变量]);
程序员在for in 的变量喜欢写Key或者i
一些可用内置对象:
Math.PI //求圆周率 Math.max()//返回最大数值(如果无值返回负无穷大) Math.abc ()//取绝对值 Math.floor()//向下取整 Math.ceil()//向上取整 Math.round()//四舍五入(五特殊 往大了取)
- 随机数
Math.random() ;
- 返回一个随机浮点数

