JavaScript语言 1.脚本语言,是一种解释型的脚本语言,直接执行不同于c、Java先编译后执行 2.基于对象:是半面向对象。 3.简单:弱类型变量(可以不直接声明变量类型) 4.跨平台:浏览器运行环境 5.嵌入式: js的ES6版本 js的三个主要组成部分: 1.ecmascript(核心也就是java基础) 2.Dom(文档对象模型) 3bom(浏览器对象模型) javaScript在页面中的位置 可以将JavaScript代码放在html文件中任何位置。 放在head部分: 最常用的方式是在页面中head部分放置script元素,head部分会先加载,浏览器解析head部分就会执行这个代码, 然后才解析页面的其余部分。所以进行页面显示初始化的js必须放在head里面。 放在body部分: JavaScript代码在网页读取到该语句的时候就会执行。也就是按照顺序执行。 script标签可以有多个。
基本语法 变量的声明 let 变量名 = 变量值 ?? ??? ??? ? // var 变量名 = 变量值; ?? ??? ??? ?// let是关键词,后面跟变量名。表示声明一个变量, ?? ??? ??? ?// 变量的数据类型由所赋值的类型来决定。 .js中的数据类型 js中的数据类型有六种: undefined-未定义类型:未被赋值的变量,值为undefined boolean-布尔类型:值为true/false number-数字类型:任何数字(NaN也是number类型,表示“非数”) string-字符串类型:值用引号(单引号或者双引号)括起来 object-对象类型:null、数组、Date等 function-函数类型:function函数 let num; ?? console.log(typeof num) ? ? ? //返回undefined num = 10; console.log(typeof num) ? ? ? //返回number num = 'abc'; console.log(typeof num) ? ? ? //返回string num = true; console.log(typeof num) ? ? ? //返回boolean function getDate(){} ? ? ? ? //函数把方法看做一种数据类型,这里的函数名就是一种变量 console.log(typeof getDate) ? //返回function? num = []; console.log(typeof num) ? ? ? //返回object num = new Date(); console.log(typeof num) ? ? ? //返回object num = null; console.log(typeof num) ? ? ? //返回object
?? ?console.log(parseInt('a')+100);//非数,一种特殊的值 ?? ??? ??? ?console.log(isNaN('123'));//false 非数判断但里面是数字所以错误 ?? ??? ??? ?//这个方法就可以判断输入的内容是否是纯数字 console.log(10/0);//返回Infinity js中的运算符优先级和Java一样 算数运算>比较运算符>逻辑运算符>赋值运算符
= 相等运算符 运行时,“==”操作符会自动将两端的操作数转换为同一种数据类型后再作比较。 console.log(1=='1'); ? ?//true console.log('123'=='123.0'); //false
=== 严格相等(等同运算符 ) “===”是严格意义上的相等,两个值和它们的类型完全一致时才返回true。 console.log(1==='1'); ? ?//false
js中的数据类型转换 隐式转换:减、乘、除可自动进行隐式转换。 let num1 = '10'; let num2 = '5'; console.log(num1-num2) ? ?//5 console.log(num1*num2) ? ?//50 console.log(num1/num2) ? ?//2
强制转换: parseInt() :将字符串转换成整数。 parseFloat() :将字符串转换成浮点数。 let str1 = '10'; let str2 = '10.5' console.log(parseInt('10')+parseFloat('10.5')); ?//20.5
流程控制语句 if else switch while do while for
?Math.trunc()方法去除数字的小数部分,保留整数部分。
js中的作用域(也就是变量的使用范围) 只有函数作用域,没有块级作用域 if(true){ ? ? var num1 = 10; } function say(){ ? ? var num2 = 20; } console.log(num1); ? ? //10 ? (if块没有独立作用域,所以可以访问) console.log(num2); ? ? //Uncaught ReferenceError: num2 is not defined
声明变量时let与var的区别 使用let声明的变量就存在块级作用域 if(true){ ? ? let num1 = 10; } function say(){ ? ? let num2 = 20; } console.log(num1); ? ? //Uncaught ReferenceError: num1 is not defined console.log(num2); ? ? //Uncaught ReferenceError: num2 is not defined
创建数组 //1、创建数组时不指定长度 let arr = new Array(); ?? //2、创建数组时指定长度(一般不使用) let arr = new Array(5); ? //3、创建数组时直接赋值 let arr = new Array(10,20,30); ?? //4、创建数组时直接赋值 let arr = [66,80,90,77,59];
使用数组 arr.length 是属性 带括号的是方法string.length() let arr = [55,23,89,65,11]; ? console.log(arr.length); ? ? ? ?//5 //遍历数组 for(let i=0;i<arr.length;i++){ ? ? console.log(arr[i]); }
|