从0开始学js

第一天:js入门

1、js简介

①、js是世界上最流行的编程语言。

②、js是一种轻量级的编程语言。

③、js是可插入html页面的编程代码,由浏览器执行。

④、js是一门属于网络的脚本语言。

⑤、js被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies以及更多应用。

⑥、js用于html和web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。

2、引入

页面引入js(同css引入)常见3种引入方式:行内、内部、外部。

①、行内

<button οnclick="alert('我被您点击了')"></button>

②、内部(内联)引入

<html> <head> meta style title </head> <body> <!-- 页面预定义标签 --> div|span|a|h <script> //编辑js脚本 </script> </body>

③、外部引入(推荐使用)

<html> <head> meta style title </head> <body> <!-- 页面预定义标签 --> div|span|a|h <!-- 通过script标签的src引入js文件 --> <script src="./js/js01.js"></script> </body>

优势:

  • 分离了HTML和代码
  • 更使HTML和JavaScript易于阅读和维护
  • 已缓存的JavaScript文件可加速页面加载

js引入注意事项

①、引入js放置body结束标签之前

②、script标签不可嵌套script标签

3、js用途

①、动态输出HTMl

document.write("输出文本");

②、对事件做出反应

<button οnclick="alert('我被您点击了')"></button>

③、改变HTML内容

wp=document.getElementById("wp");

④、改变Image引入

imgW=document.getElementById("img1");

⑤、改变HTML样式

wp=document.getElementById("wp");

⑥、验证输入

if(isNaN("abc")){alert("这是 不是个数字")}

⑦、等等更多功能后续收看

第二天:js组成

1、语句

定义:js语句是向浏览器发出命令,告诉浏览器该做什么。

注意:分号(“;”)代表一句话结束。

2、代码

定义:js代码是js语句的序列。浏览器会按照编写顺序至上而下、至左而右执行每条语句。

3、代码块

定义:js代码块是js多条语句的组合。

注意:①、代码块使用花括号“{多条语句}”包裹。

②、块的作用使语句序列一起执行。

4、其他注意

①、js对大小写敏感(区分大小写)

②、js会忽略语句之间多余的空格。每条语句间折行能提高可读性。

③、字符串内折行使用反斜杆“\”换行。

5、注释

js注释两种

①、单行注释。使用“//”

//alert("单行注释、这个提示不执行");

②、多行注释。使用“/**/”

/*document.write("abc");

注意:多行注释不可嵌套多行注释,可嵌套单行注释

6、变量

定义:js变量是存储信息(数据)的容器。

语法:var 变量名(标识符)= 信息(数据);

①、变量名

命名规则:

  • 以$、_、字母开头和$、_、字母、数字的组合。
  • 变量名对大小写敏感。
  • 变量名不能使用关键字或保留字命名

②、信息(数据)

js变量存储有很多数据类型。现在只关注字符串及数字

var num=123; var str="这个用双引号引起来的是字符串类型"; var str1='这个用单引号引起来的也是字符串类型';

js变量可存放值和表达式

var num1=23; var num2=34;

③创建变量

创建变量又称声明变量。使用“var”关键字声明。

var a;//声明a; console.log(a);//undefined //只声明未赋值,变量有值为undefined; a=123; / var a=123;//上面的声明方式可以这么简化 // /*var a=1; var b="abc"; var c;*/ var a=1,b="abc",c;//同时声明多个变量时可以使用逗号分隔。简化上面的写法 // var a=123; var a;

7、关键字&保留字

定义:js关键字和保留字主要用于控制语句执行(开始、终止、操作)的特殊字符。

注意:js的关键字及保留字,不能作为变量名使用。

js关键字有:

var new function this return do while for in break continue if else switch case default

js保留字有:

class float public boolean int static import export const extends

第三天:数据类型&运算符

1、数据类型

js数据类型:基本类型(字符串、数字、布尔、null、undefined)、复杂类型(数组、对象)。

1.1、基本类型

①、字符串(String)

定义:存储字符的变量。

显示方式:由一对单引号('任意字符')或双引号("任意字符")包裹的任意字符。

注意:上述任意字符中不可嵌套对应的引号,若要嵌套可使用反斜杠(\)转义字符。转义字符可转义如下字符:

\n //换行字符 \r //回车 \' //单引号 \" //双引号

②、数字(Number)

定义:保存阿拉伯数字的变量。

数字分为整数、浮点数(小数)

③、布尔类型(Boolean)

定义:保存逻辑的变量。

布尔值仅有true和false

④、null&undefined

区别:

  • 都表示变量不含有值 。
  • 值不同。null的值是null,undefined的值是undefined。
  • 代表的信息不同。null表示指向对象的空指针(不指向任何对象),undefined表示变量仅声明未赋值。
  • 转为数字时值不同。null转数字为0;undefined转为数值时为NaN。
  • 赋值时清空的对象不同。undefined用于清空值,值为空。null用于清空对象,表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
  • 用法不同。
    1. undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
      1. 变量被声明了,但没有赋值时,就等于undefined。
      2. 调用函数时,应该提供的参数没有提供,该参数等于undefined。
      3. 对象没有赋值的属性,该属性的值为undefined。
      4. 函数没有返回值时,默认返回undefined。
    2. null表示"没有对象",即该处不应该有值。典型用法是:
      1. 作为函数的参数,表示该函数的参数不是对象。
      2. 作为对象原型链的终点。

1.2、复杂类型(引用类型)

①、数组(Array)

定义:存储一系列值的变量

语法:var arr=[中括号包裹,逗号,隔开的,数据];

②、对象(Object)

定义:带有属性及方法的特殊数据类型

语法:var obj={属性名:属性值,标识符:信息,key:value};

2、js运算符

js运算符有四大类分别是:算术运算符、赋值运算符、比较运算符、逻辑运算符。

2.1、算术运算符

定义:用于执行变量或值之间的算术运算。

包含:+(加)|-(减)|*(乘)|/(除)|%(模:求余)|++(累加)|--(累减)

知识点:

  • i++和++i的区别;
    • i++是先赋值后运算
    • ++i是先运算后赋值

var i=5; console.log(i++);//同下 /*console.log(i); i=i+1;*/ /// var j=5; console.log(++j);//同下 /*j=j+1;

2.2、赋值运算符

定义:将运算或值赋值给变量。

包含:=|+=|-=|*=|/=|%=

var i=5;

2.3、比较运算符

定义:测定变量或值是否相等。用于逻辑语句中。

包含:==|===|!=|>|=|

知识点:

  • ==和===的区别
    • ==仅用于比较值是否相等。类型不同时,数据类型会隐式转化
    • ===既比较数据类型,又比较值。

2.4、逻辑运算符

定义:测定变量或值之间的逻辑。

包含:&&(且)|||(或)|!(非)

第四天:条件语句

定义:条件语句用于基于不同的条件执行不同动作(代码块)。

包括:if语句、switch语句

1、if语句

if语句包括:if...|if...else|if...else if..else

1.1 if

只有指定条件为真时其代码块才执行

语法:if(条件){条件为真时,执行代码块}

1.2 if...else...

语法:if(true){条件为真执行代码块}else{条件为假时执行代码块}

1.3 if...else if..else...

语法:if(条件1){条件1为真执行代码块}else if(条件2){条件2为真执行代码块}else{以上条件全为假,执行代码块}

2、switch语句

//语法 switch(key){ //key:待判断的值 case value: //value:比较值 //待判断的值 与 比较值 全等(===)比较后为真时执行的代码 break; //break:阻止代码向下个case执行。 default: //比较全为假执行的代码 break;

工作原理:设置一个带判断的值与switch代码块中每个case至上而下全等比较。如果为真则执行其case关联的代码块。使用break阻止代码向下个case执行。若与各case值比较后全为假,则执行默认(default)关联的代码。

第五天:循环语句&&检错

1、循环语句

定义:将代码块执行指定的次数。

循环包含:for | while | do...while...

1.1、for循环

语法:for(初始化语句;条件语句;运算语句){条件语句为真时执行代码块}

for(var i=1;i<11;i++){ console.log(i);//1.2.3.4.5.6.7.8.9.10

工作原理:页面加载时先执行初始化语句,再执行条件语句。若条件语句为真时执行{}代码块,后执行运算语句,再执行条件语句,为真时执行代码块...;

1.2、while循环

语法:while(条件语句){条件语句为真时执行代码块,代码块里须有可使条件为假的代码,否则会死循环}

var i=1; while(i<11){ console.log(i);//1,2,3,4,5,6,7,8,9,10 i++;

1.3、do...while循环

语法:do{1、加载时先执行一次代码块;2、条件满足时重复执行代码块。(代码块里须有可使条件为假的代码,否则会死循环)}while(条件语句);

var i=1; do{ console.log(i);//1,2,3,4,5,6,7,8,9,10 i++;

知识点

while循环和do...while循环的区别

  • 执行顺序不同:
    • while循环先执行条件语句,条件语句为真时,执行代码块
    • do...while循环先执行do代码块,再执行条件语句。条件语句为真时执行do代码块。

1.4、关键字(continue&break)

continue:用于跳出本次循环,直接执行下一次循环

for(var i=1;i<11;i++){ if(i==5){ continue; } console.log(i);//1,2,3,4,6,7,8,9,10(不执行5)

break:用于终止循环执行。

for(var i=1;i<11;i++){ if(i==5){ break; } console.log(i);//1,2,3,4(5及以后不执行)

2、代码检错(选读)

2.1、try...catch

语法:try{检测的代码块}catch(error){try代码块错误时执行代码块}

try { console.lag(123); } catch (error) { console.log(error);//TypeError: console.lag is not a function at js-07.html:16

2.2、throw

定义:创建自定义错误(抛出错误或异常)。与try...catch一块使用可控制程序流生成自定义错误。

var age=15; try{ if(i<18){ throw "您还是个未成年人哟" }else { throw "您已经成年了" } } catch(error) { document.write(error);//"您还是个未成年人哟"

2.3、finally

语法:try{测试代码块}catch(error){try代码块错误时执行代码块}finally{无论try|catch结果如何都执行代码块}

var i=13; try { if(i<18){ throw "您是一个未成年人" }else{ throw "您已经成年" } } catch (error) { console.log(error);//"您是一个未成年人" }finally{ console.log("您检测了年龄");//"您检测了年龄"

第六天:函数&对象入门

1、函数入门

定义:函数是由事件驱动的、被调用时执行、可重复使用的代码块。

1.1、创建函数(声明函数):

①、函数声明

语法:function 函数名(){//调用时可执行代码块}

②、函数表达式

语法:var 函数名=function(){//调用时可执行代码块}

③、知识点:

  • 函数声明和函数表达式的区别?
    • 函数声明可以先调用后声明。js加载时会优先加载函数声明,在调用时函数已存在。
    • 函数表达式必须先声明后调用。js加载时虽然函数变量名会声明前置,但是其值并不存在(undefined)。

1.2、函数传参

语法:function 函数名(形参1,形参2,...){} 函数名(实参1,实参2,...); (函数表达式同理)

1.3、函数返回值

语法:function 函数名(){return 函数返回值}

注意:函数返回值可有可无。若需要返回使用return关键字返回,其语句后代码不会执行。无返回值时值为undefined。

2、对象入门

定义:对象时具有属性和方法的特殊数据类型。

js外物皆对象。也可以自定义对象。

2.1、创建自定义对象

var obj1=new Object(); var obj2=new Object;//不推荐

2.2、操作对象(增删改查)

var obj={}; //增 obj.a=123; //对象.属性名(同变量命名规则)=属性值 obj["b"]="abc"; //对象["字符串"]=属性值 console.log(obj)//{a:123,b:"abc"}; //删 delete obj.a; delete obj["b"] //改(对象属性名具有唯一性) obj.a=345; obj["b"]="efg"; //查 console.log(obj.a);//345 console.log(obj["b"]);//"efg" //遍历 for(var i in obj){ console.log(i);//a,b console.log(obj[i]);//345,"efg"

第七天:内置对象~数字(Number)、字符串(String)&日期(Date)

1、数字(Number)

创建数字:

var numb1=new Number(123);//不推荐

注意事项:

  • js数字均为64位
  • 整数最多解析15位
  • 小数点后最多解析17位
  • 小数运算时并不准确(0.1+0.2)//0.30000000000000004

常用方法:

  • toFixed(2):保留小数位数(会将数字转为字符串)

2、字符串(String)

2.1、创建字符串:

var str1=new String("abc");//不推荐

2.2、属性

  • length:用于获取字符串长度

2.3、方法

var str="abcdefc"; //增 str+="ghi"; //截取 console.log(str.substr(2,2));//"cd" 参数1:截取的起点索引。参数2:截取的个数(不传,截取到最后) console.log(str.substring(2,5));//"cde" 参数1:截取的起点索引。参数2:截取止点索引(不包含)(不传,截取到最后) //改 console.log(str.replace('c','g'));//"abgdefc" //查 console.log(str.indexOf("c"));//2。获取字符在字符串中首次出现的位置(索引) console.log(str.lastIndexOf("c"));//6。获取字符在字符串中最后出现的位置(索引) console.log(str.charAt(3));//"d"。根据索引获取对应字符 //字符串-->数组 console.log(str.split(""));//["a","b","c","d","e","f","c"]。参数:以什么字符分隔 //字母转大写 console.log(str.toUpperCase());//ABCDEFC console.log(str.toLowerCase());//abcdefc //清楚前后空格

3、日期(Date)

3.1、创建日期对象

var dt=new Date();

3.2、常用方法

var dt=new Date(); console.log(dt.getFullYear());//获取年份 console.log(dt.getMonth());//获取月份(获取的月份+1) console.log(dt.getDate());//获取日 console.log(dt.getDay());//获取星期 console.log(dt.getHours());//获取小时 console.log(dt.getMinutes());//获取分钟 console.log(dt.getSeconds());//获取秒 console.log(dt.getTime());//获取毫秒(时间戳) console.log(dt.toUTCString());//将世界时间转字符串 //获取时间戳的方法 //1、(new Date()).getTime();

第八天:内置对象~数组(Array)、布尔(Boolean)、算数(Math)

1、数组(Array)

1.1、创建数组

var arr=new Array(); var arr1=[];//推荐 //注意

1.2、数组属性&方法

var arr=[1,3,5,7]; //属性 console.log(arr.length);//4。获取数组项数 //方法 //增 arr.unshift("a",null);//["a",null,1,3,5,7]首增 arr.push("b",undefined);//["a",null,1,3,5,7,"b",undefined] //删 arr.shift();//[3,5,7] 首删 arr.pop();//[3,5] 尾删 arr.splice();//不传参全部删除;传一个参数:从索引为多少开始删,其后全部删除;参两个参数:splice(开始删除项的索引,其后删除项数) //改 arr[2]=9;//[1,3,9,7]; arr.splice(1,1,11);//[1,11,9,7] splice(开始修改的索引,其后替换几项,用什么来替换) //查 console.log(arr[1]);//3 [索引]取值 console.log(arr.slice(1,3))//[3,5] 同字符串的substring,slice(开始查询的索引,结束查询索引的前一位); //合并数组 console.log(arr.concat([2,4,6],[11,13]));//[1,3,5,7,2,4,6,11,13] //数组转字符串 console.log(arr.join("-"));//"1-3-5-7" join("用什么字符合并") //倒序(翻转) console.log(arr.reverse());//[7,5,3,1] //排序 arr.sort(funcion(a,b){ //return a-b;//升序排列 return b-a;//降序排列

2、布尔(Boolean)

作用:用于将非逻辑值转换为逻辑值(true|false)

在进行逻辑判断时会将非逻辑值隐式转换为逻辑值再判断,隐式转换规则如下:

数据类型

转换成true

转换成false

字符串

任何非空字符串

空字符串

数字

非0数字

0

null

null

undefined

undefined

复杂类型(引用类型)

任何对象

3、算数(Math)

作用:执行常见的算数任务。

console.log(Math.abs(-123));//123 绝对值 console.log(Math.ceil(2.002));//3 向上取整 console.log(Math.floor(3.9998));//3 向下取整 console.log(Math.max(2,5));//5 获取两个数字较大的 console.log(Math.min(2,5));//2 获取两个数字较小的 console.log(Math.pow(2,3));//8 获取几次幂 console.log(Math.round(3.14));//3 四舍五入

知识点

3.1、随机数公式

  • 获取两个数之间的随机整数(不包含最大及最小值)

var num=Math.ceil(Math.random()*(最大值-最小值-1)+最小值);

  • 获取两个数之间的随机整数(包含最大及最小值)

var num=Math.floor(Math.random()*(最大值-最小值+1)+最小值);

4、正则表达式(regExp)

4.1 定义:

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串

4.2 用途:

①、测试字符串内的模式是否满足格式

②、替换文本

③、基于模式匹配从字符串中提取字符串。

4.3 创建

组成:正则表达式的组建可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

语法:①、字面量:/pattern/attributes ②、创建对象:new RegExp(pattern, attributes);

4.4 方法

第九天:DOM

1、定义:DOM(Document Object Model)是文档对象模型。

2、获取DOM对象

2.1、通过标签名获取DOM对象(getElementsByTagName)

var divs=document.getElementsByTagName("div");//HTMLCollection:HTML集合。得到一个类数组结构

2.2、通过样式名获取DOM对象(getElementsByClassName)

var divs=document.getElementsByClassName("active");//HTMLCollection:HTML集合。得到一个类数组结构

2.3、通过锚点(id)获取DOM对象(getElementById)

var wp=document.getElementById("wp");

2.4、通过name属性获取表单元素

var ipts=document.getElementsByName("hobby");//NodeList:标签列表。类数组

2.5、通过选择器获取一个DOM对象

var wp=document.querySelector("#wp"); console.log(wp); var div1=document.querySelector(".div");

2.6、通过选择器获取一组DOM集合

var divs=document.querySelectorAll(".wp");//NodeList:标签列表。类数组

3、操作Dom

3.1、操作Html元素(innerHTML)

document.write("这是新写入的文档,并不常用"); //html <div id="wp"><span>这是里面的文本</span></div> //js var wp=document.getElementById("wp"); //获取 console.log(wp.innerText);//"这是里面的文本" //获取DOM里的文本 console.log(wp.innerHTML);//"<span>这是里面的文本</span>" //获取DOM里的HTML //修改 wp.innerText="替换文本";//<div id="wp">替换文本</div>。原有的标签也会替换掉

3.2、操作HTML属性(DOM对象.属性名)

//html <div id="wp" class="div1">这个div</div> //js var wp=document.getElementById("wp"); //获取 console.log(wp.id);//"wp" //修改

3.3、操作HTML样式(DOM对象.style.样式属性名(两个及以上单词组成的须改为驼峰式写法))

//html <div id="wp" style="font-size:20px;">这个是20像素的字体</div> //js var wp=document.getElementById("wp"); //获取 console.log(wp.style.fontSize);//"20px" //修改

3.4、对事件做出反应(DOM对象.on事件类型=function(){})

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
从0到1的习路径,通常是指从零基础开始逐步掌握计算机科和编程技能的过程。这是一个循序渐进的旅程,可以分为以下几个阶段: 1. **基础知识**: - 计算机基础知识:了解计算机组成、操作系统、网络等基本概念。 - 数基础:特别是离散数(如逻辑、集合、图论)、算法和数据结构,因为这些都是编程的核心。 2. **选择一门编程语言**: - Python是一个很好的入门选择,因为它语法简洁,适合初者。其他如JavaScript、Java或C++也是常见选择。 3. **习编程语言**: - 习语言的基本语法、变量、数据类型、控制结构(如循环和条件语句)。 - 使用集成开发环境(IDE)或文本编辑器,并练习编写简单的程序。 4. **实践项目**: - 完成一些小型项目,例如打印“Hello, World!”、计算器、猜数字游戏等,以应用所知识。 5. **数据结构和算法**: - 习并实践基本的数据结构(数组、链表、栈、队列、哈希表等)和常用算法(排序、搜索等)。 6. **面向对象编程**: - 习面向对象的概念,包括类、对象、封装、继承和多态。 - Python中的OOP(如使用`class`和`def`关键字)。 7. **Web开发**: - HTML/CSS/JavaScript(前端),或习一门后端语言(如Python的Django或Flask)以及数据库管理。 8. **网络编程和系统设计**: - 习网络编程原理,如HTTP协议,TCP/IP等。 - 理解软件工程和系统架构设计。 9. **软件工程和版本控制**: - 掌握Git或其他版本控制系统。 - 了解软件开发流程,如需求分析、设计、测试和部署。 10. **深入习与实践**: - 针对特定领域(如数据分析、人工智能、Web开发等)进行深化习。 - 参与开源项目或个人项目,提升实际经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值