中国银行网站建设,wordpress返回html原理,泰州专业做网站,线下编程课程收费标准文章目录一、初识JavaScript二、第一个JS程序JS代码的引入JS程序的输出三、语法变量使用动态类型内置类型运算符强类型语言弱类型语言条件语句循环语句数组创建数组获取数组元素新增数组元素删除数组元素函数语法格式形参实参个数的问题匿名函数函数表达式作用域作用…
文章目录一、初识JavaScript二、第一个JS程序JS代码的引入JS程序的输出三、语法变量使用动态类型内置类型运算符强类型语言弱类型语言条件语句循环语句数组创建数组获取数组元素新增数组元素删除数组元素函数语法格式形参实参个数的问题匿名函数函数表达式作用域作用域链对象概念定义方法使用1.使用字面常量2.使用 new Object 创建对象一、初识JavaScript
JavaScript简称JS是世界上最流行的编程语言之一 是一个脚本语言, 通过解释器运行 主要在客户端(浏览器)上运行。 例如chrome里边有个专门的模块就是JS引擎相当于JVM能够解释执行js代码。后来有大佬把这部分代码单独拎出来封装成了单独的程序称为V8引擎也就是说只要所以装了V8引擎就可以跑JS代码所以JS现在的使用范围更广了。 现在JavaScript 的能做的事情:
网页开发(更复杂的特效和用户交互)网页游戏开发服务器开发(node.js)桌面程序开发(Electron, VSCode 就是这么来的)手机 app 开发
发明者布兰登 * 艾奇 (Brendan Eich) 【10天完成的……】
跟java的关系毫无关系是个蹭热度的语言。
跟HTML、CSS的关系HTML是骨CSS是肉、JS是魂
JS组成ES即ECMAScript是一套标准是 JS的语法部分、DOM页面文档对象模型对页面的元素进行操作、BOM浏览器对象模型对浏览器窗口进行操作 光有 JS 语法, 只能写一些基础的逻辑流程. 但是要想完成更复杂的任务, 完成和浏览器以及页面的交互, 那么久需要 DOM API 和 BOM API. 前端我们不作为重点来学所以这里只是ES和DOM 二、第一个JS程序
!DOCTYPE html
html langen
headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titlehello,js/title
/head
bodyscriptalert(hello)/script
/body
/htmlJS代码的引入
js代码是以scipt的形式内嵌到html中引入方式与css类似有三种。 内部js刚才看到的script标签 外部js。写到一个单独的.js文件让html引入进来【实际开发】 行内js/内联js直接写到html内部
这里练习语法主要用13两种方法引入js代码 这三种语言的注释 html css/注释/ js//注释 /注释/ JS程序的输出
alert能够弹框从而让用户看到程序的输出但是弹框操作不太好我们可以使用console.log在控制台中打印日志。一个非常有力的调试手段 关于这个框 有些对话一弹出来就会组织用户操作其他界面叫做模拟对话框。 三、语法
变量使用
var name zhangsan; var age 20;
不需要定义类型var/let关键字变量名值。 注意不写类型不代表没有类型而是通过初始化操作的值来确定的。 JS不区分小数和整数统一都是num类型。 很多语言都有这种语法。 更推荐let关键字。var是种老式的写法比较坑。现在知道有人使用var不奇怪我们自己无脑记住使用let即可。
动态类型
JS 的变量类型是程序运行过程中才确定的(运行到 语句才会确定类型)随着程序运行, 变量的类型可能会发生改变. 例如 动态类型静态类型 动态类型一个变量在运行时类型可以发生改变 静态类型一个变量在运行时不可以改变 动态类型的好处坏处 好处代码很灵活 缺点不明确性太大 很多公司在初创时都是使用的JS做好了之后会再使用静态类型语言重构。 内置类型
number: 数字. 不区分整数和小数.boolean: true 真, false 假.string: 字符串类型.undefined: 只有唯一的值 undefined. 表示未定义的值.null: 只有唯一的值 null. 表示空值
前三个跟java差不多所以这里我们主要看后两个
undefined:未定义的。
null:空值有但是没有填值 别的语言中如果访问到某个东西没有定义直接报错。但是JS不报错而是返回undefined。JS把别的语言认为非法的行为合法化。 运算符
这里边绝大部分都和Java是一样的例如算术运算符、赋值、符合赋值、自增自减、比较、逻辑运算、位运算、移位运算但是这里还有几个特别的点需要注意 比较相等(会进行隐式类型转换) 比较相等(不会进行隐式类型转换
强类型语言弱类型语言 C是弱还是强业界存在争议。
业界普遍认为强类型优于弱类型。出错概率会降低。
条件语句
if-else if-else、swith、三目运算符和java一样
循环语句
while、for都和java一样
数组
创建数组 使用new关键字let arrnew Array(); 使用字面常量 var arr []; var arr2 [1, 2, ‘haha’, false];
注意JS 的数组不要求元素是相同类型
获取数组元素
使用下标的方式访问数组元素(从 0 开始) 如果下标超出范围读取元素, 则结果为 undefined 。
不要给数组名直接赋值, 此时数组中的所有元素都没了。相当于本来 arr 是一个数组, 重新赋值后变成字符串了。
var arr [小猪佩奇, 小猪乔治, 小羊苏西];
arr[2] 小猫凯迪;//越界console.log(arr[3]); // undefined
console.log(arr[-1]); // undefinedarr 小猫凯迪;//变成字符串了JS中的数组不是传统意义上的数组了而是一个类似键值对的集合。
//又重新赋值
arr[100] 日娃月娃;
console.log(arr[100]);arr[‘hello’] 熊出没;
console.log(arr[hello]);新增数组元素 通过修改 length 新增 通过下标新增 如果下标超出范围赋值元素, 则会给指定位置插入新元素 。正如上边的arr[100] 使用 push 进行追加元素 尾插元素 var arr [9, 5, 2, 7, 3, 6, 8];
var newArr [];
for (var i 0; i arr.length; i) {if (arr[i] % 2 ! 0) {newArr.push(arr[i]);}
}
console.log(newArr);删除数组元素
使用 splice 方法删除元素 【巨牛的可用来插入、修改、删除……】
splice(startIndex,count,变长参数)
若后边没有变长参数相当于删除若后边变长参数和前边指定区间的个数相同就是替换若其后边变长参数比前边区间个数长就是新增
函数
语法格式
// 创建函数/函数声明/函数定义
function 函数名(形参列表) {函数体return 返回值;
}
// 函数调用
函数名(实参列表) // 不考虑返回值
返回值 函数名(实参列表) // 考虑返回值注意
开头都是function关键字函数名形参列表有但是返回值类型没有。形参列表不需要写类型只要内部能在内部正常工作访问权限关键字也没有没有入口的概念形参和实参不匹配处理问题字符串、undefined……
形参实参个数的问题
实参和形参之间的个数可以不匹配. 但是实际开发一般要求形参和实参个数要匹配
如果实参个数比形参个数多, 则多出的参数不参与函数运算如果实参个数比形参个数少, 则此时多出来的形参值为 undefined
不会报错只会尽可能的执行
匿名函数函数表达式
add的类型就是function类型【typeof运算符获取类型的】
var add function() {var sum 0;for (var i 0; i arguments.length; i) {sum arguments[i];}return sum;
}
console.log(add(10, 20)); // 30
console.log(add(1, 2, 3, 4)); // 10
console.log(typeof add); // functionJS 中函数是一等公民术语, 可以用变量保存, 也可以作为其他函数的参数或者返回值 。
【JS不需要重载的概念】
作用域
作用域即变量的有效范围。
在 ES6 标准之前, 作用域主要分成两个
全局作用域: 在整个 script 标签中, 或者单独的 js 文件中生效.局部作用域/函数作用域: 在函数内部生效.
作用域链
内部函数可以访问外部函数的变量. 采取的是链式查找的方式. 从内到外依次进行查找 。
与java中的变量捕获是类似的性质。
对象
概念
JS不是面向对象语言但是存在对象的概念两者差别很大JS没有封装继承多态。
在 JS 中, 字符串, 数值, 数组, 函数都是对象.
每个对象中包含若干的属性和方法.
属性: 事物的特征.方法: 事物的行为
定义方法使用
1.使用字面常量 div这是一个段落/divscriptvar a {}; var student {name: Taylor Swift,height: 180,weight: 112,sing: function() {console.log(love story);console.log(cruel Summer);}};console.log(student.name);console.log(student.height);console.log(student.weight);console.log(student.sing);/script2.使用 new Object 创建对象
js中有什么对象方法并不是提前约定好的而是随时可以添加。 scriptvar student new Object(); student.name Taylor Swift;student.height 180;student[weight] 112;student.sing function() {console.log(love story);console.log(cruel Summer);}console.log(student.name);console.log(student[weight]);/script在js的ES6版本中引入了class关键字Js也就可以定义类通过类创建实例更贴近java【再次说明了解即可秉持能不学就不学的原则我现在是这么想的阿弥陀佛】