讲师中心 微信公众号
AI工具推荐 视频效率加速

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

大明小哥_8788

大明小哥_8788

发布时间:2021-10-12 11:21:18

|

2555人浏览过

|

来源于CSDN

转载

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

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

什么是JavaScript?

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


基本输入输出语句

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

变量

声明变量 var (name)

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

      立即学习“Java免费学习笔记(深入)”;

    • 未初始化的变量直接输出结果是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速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
es6新特性
es6新特性

es6新特性有:1、块级作用域变量;2、箭头函数;3、模板字符串;4、解构赋值;5、默认参数;6、 扩展运算符;7、 类和继承;8、Promise。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

265

2023.07.17

es6新特性有哪些
es6新特性有哪些

es6的新特性有:1、块级作用域;2、箭头函数;3、解构赋值;4、默认参数;5、扩展运算符;6、模板字符串;7、类和模块;8、迭代器和生成器;9、Promise对象;10、模块化导入和导出等等。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

386

2023.08.04

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

335

2025.12.24

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2411

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

494

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

422

2026.02.12

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

5219

2023.08.02

java中boolean的用法
java中boolean的用法

在Java中,boolean是一种基本数据类型,它只有两个可能的值:true和false。boolean类型经常用于条件测试,比如进行比较或者检查某个条件是否满足。想了解更多java中boolean的相关内容,可以阅读本专题下面的文章。

2090

2023.11.13

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

60

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Building a URL Shortner with Buffalo
Building a URL Shortner with Buffalo

共0课时 | 0人学习

Buffalo & Goth 官方视频教程
Buffalo & Goth 官方视频教程

共0课时 | 0人学习

Iris框架MVC快速入门指南
Iris框架MVC快速入门指南

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn