搜索
首页web前端js教程Java Script中值得收藏的学习笔记(总结分享)

今天给大家带来了值得收藏的JavaScript初级学习笔记,含有很多小知识,赶快码住看一看吧!

Java Script中值得收藏的学习笔记(总结分享)

什么是JavaScript?

JavaScript是一种运行在客户端的脚本语言


基本输入输出语句

功能 语句
打印输出 console.log()
弹出输出框 alert
弹出输入框 prompt
文件写入 document.write(’’)
  • 小理论:
    console.log可以输出任何类型的数据,alert只能输出String类型的数据,且只能输出第一个数据,如果alert输出的是对象会自动调用toString()方法。

变量

声明变量 var (name)

  • 一些注意事项
    • 一次声明多个变量的时候必须用逗号进行隔开,而且必须换行,写在同一行的多个声明变量会无效。

    • 未初始化的变量直接输出结果是undfined

    • 变量的命名规范: 字母数字下划线美元符号(不以数字开头)

    • 变量初始化中,单引号和双引号没有区别


数据类型

JavaScipt是一种> 动态/弱类型 语言

Num数字型 Boolean布尔型 Str字符串型 Undefined未知的值 Null空

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新增,其他版本在括号里面定
    义的变量也能在外面调用
  • 作用域链:多个函数嵌套的时候会形成作用域链,子函数能访问父函数的块作用域

对象

  • 什么是对象?
    对象是一组无序的相关属性和方法的集合(字符串,数值,数组,函数)
    在其他语言中,类似 >结构体 >字典

创建自定义对象和对象属性、对象方法:

  1. 字面量创建
var obj = {
	name:'姓名',
	age : 999,
	//*方法*冒号后跟一个*匿名函数*
	printf:function() {
		console.log('hello world');
	}
	}

记忆方法↓:

  • 直接给对象名、属性冒号跟值+语句结束逗号
  • 方法用冒号
  • 取值:对象名.属性名 or 对象名[‘属性名’]
  • 调用对象方法: 对象名.方法名();
  1. 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() ;
  • 返回一个随机浮点数【0,1)括号里不跟参数
    ↓ 扩展:得到自定义最大值和最小值中间的随机函数
Function getRandomInt(min, max) {
	min = Math.ceil(min); //规范值语句 可省
	max = Math.floor(max); //规范值语句 可省
	return = Math.floor(Math.random() * (max - min + 1) + min);
  • new Date()调用日期对象 不跟参数返回系统时间
  • (‘2021-10-10 8:00:00’)字符串输出

  • (2021, 10, 10)数字输出 月份从0开始11结束 故而要在月份的基础上+1

  • 变量.getDay()获取当前星期,星期日从0开始 到星期六6结束 获取到的值是一个数字
    ↓规范获取当前时间 demo
var date1 = new Date;
var year = date1.getFunllYear();
var month = date1.getMonth();
var dates = date1.getDate();
var day = date1.getDay();
var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
alert('今天的日期是:' + year + '年' + (month+1) + '月' + dates + '日' + arr[day]);

==值得注意的是,必须使用变量调用Date这个构造函数

基本包装类型:

  • 就是把简单数据类型包装成复杂数据类型,这样基本数据类型就有了属性和方法,那么一般来说在浏览器里面JS引擎会自动帮我们把简单数据类型包装成复杂数据类型
var str = 'lion';
 console.log(str.length);
 //JS如何给我们的数据包装
 var temp = new String('lion');//定义一个临时构造函数包含初始化的字符串
 str = temp; //把构造函数赋给值类型
 temp = null; //最后舍弃临时变量
  • 一些可用的字符串内置对象
  1. 查找字符串
str.indexOf('要查找的字符串',[起始位置]);
//demo:
var str = '我的名字是什么,名字不重要';
console.log(str.indexOf('名字', 3));
  1. 查找指定字符
str.charAt(0); //返回指定下标的字符
str.charCodeAt(0); //返回指定下标的ASCII码
  1. 拼接字符串
str.concat('word') //拼接字符串(开发中隐性拼接居多)
  1. 查找某一连续字符
str.substr('抓起始位置', '抓几个字符'); //查找某一连续字符
  1. 替换字符
str.replace('被替换的字符', '替换为字符') //如果字符串中有重复的字符,只会替换第一个
  1. 字符串转换成数组
split('分隔符') //把字符串转换为数组(被转换字符串中必须要写分隔符,而且要与split的分隔符统一!)

一些传参和类型的–
理论深入:

  • 简单类型又被称为基本类型或者值类型 因为存储是值本身
  • 系统自动分配释放存放函数的值,局部变量的值,被称为栈
  • 复杂类型又叫引用类型 因为存储的是地址 调用的时候需要专门引用
  • 现在栈里面存放16进制地址码,然后指向堆里面的数据(对象实例),被称为堆复杂类型传参,如果不是传值,传的指针,也就是传地址
  • 特殊: Null返回的是一个空的对象(因为程序的设计缺陷)
  • 可以定义变量为Null,稍后再给值

更多编程相关知识,请访问:编程入门!!

以上是Java Script中值得收藏的学习笔记(总结分享)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除
超越浏览器:现实世界中的JavaScript超越浏览器:现实世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。

使用Next.js(后端集成)构建多租户SaaS应用程序使用Next.js(后端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

如何使用Next.js(前端集成)构建多租户SaaS应用程序如何使用Next.js(前端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:22 AM

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

JavaScript:探索网络语言的多功能性JavaScript:探索网络语言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

JavaScript的演变:当前的趋势和未来前景JavaScript的演变:当前的趋势和未来前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

神秘的JavaScript:它的作用以及为什么重要神秘的JavaScript:它的作用以及为什么重要Apr 09, 2025 am 12:07 AM

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python还是JavaScript更好?Python还是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。 1.Python以简洁语法和丰富库生态着称,适用于数据分析和Web开发。 2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

如何安装JavaScript?如何安装JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript不需要安装,因为它已内置于现代浏览器中。你只需文本编辑器和浏览器即可开始使用。1)在浏览器环境中,通过标签嵌入HTML文件中运行。2)在Node.js环境中,下载并安装Node.js后,通过命令行运行JavaScript文件。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。