-
什么是js?
与网页进行交互的脚步语言,有一定的逻辑性 脚本: 如何理解? 脚本的特点:辅助,简单,即写即所得
-
JavaScript 语言的特点
- 脚本语言 即写即所得
- 基于对象 面向对象,同时也支持面向过程
- 简单
- 动态性
- 跨平台性
现在的js 可以在客户端运行 可以在服务端运行
客户端运行: 只要能装浏览器的地方,就能运行js
服务端运行: window server 2012. linux..基于 nodejs
-
js的组成部分?(罗列大纲 死记硬背)
- ECMAScript 定于语法规范 保留字,关键字 (相等于交规)
- DOM 文档对象模型
- BOM 浏览器对象模型 控制浏览器的 前进,后退,刷新,关闭..
-
初体验
<script type="text/JavaScript"></script>
type 可以不写, 要写type就需要写完整的 text/JavaScriptalert("我是提示框!!!!");
给用户使用document.write("我被输出到页面!")
document.write("<span>我是不是 很大</span>")console.log("我在控制台输出,我是给程序员看的")
给开发者使用 -
注释
单行注释 //
多行注释 /* */
快捷键:
单行 ctrl+/
块注释 ctrl+shift+/ -
js引入方式
外部引入:
<script src="./js/index.js"></script>
写 / 没有路径提示,就装一个 path Intellisense插件
如果 script 使用src属性,就在标签的中间,不能在写其他的代码
内部引入:<script>alert("台上有一位 靓仔!");</script> -
两个异步加载的区别(defer/async)
defer async
defer和async 都是异步加载
async 异步加载 + 代码加载完成后立即触发(执行)
defer 异步加载 + 页面解析完后,才触发(执行)
注意:"defer和async要和src结合使用"
charset:设置字符集的编码 gb2310, utf-8,utf-16 utf-8 万国码 (了解) -
变量的声明
- 用var 声明变量,先声明,后赋值
var sName; //有值,是 undefined的值 (undefined:未定义) console.log(sName); //声明变量,未赋值的默认值是undefined sName = "刘德华"; console.log(sName);- 直接声明变量,并且赋予初始值
var age = 20; console.log(age);- 如果有多个变量
var myage = 20, mysex = "男", myaddress = "中国"; console.log(myage); //20 console.log(mysex); //男 console.log(myaddress); //中国js属于弱类型语言,弱类型语言变量的值可以随时修改
typeof用法
var myAge; myAge = 30; console.log(typeof myAge); //number 数值 myAge = "三十"; console.log(myAge); console.log(typeof myAge); // string -
变量命名规则
- 只能是数字,字母,下划线,$
- 不能以数字开头
- 不能是关键字和保留字
- 严格区分大小写
- 遵循驼峰命名法
小驼峰 变量,形参 myName
大驼峰 构造函数,类 MyName - 语义化 (见名知意)
var a20 = 30; var _ = 99; var $ = 200; -
基本数据类型
var sName = '张三' console.log(typeof sName); // string 由一组双引号或单引号组成字符 var weigth = 70; console.log(typeof weigth); //number 整形,浮点型(小数类型) var flag = true console.log(typeof flag); // boolean true真,false假 var age; console.log(typeof age); // undefined var obj = null; console.log(typeof obj); // object var a = null; console.log(a); // nulljs有6种基本数据类型 , 8个
值类型 string,number,bool,null,undefined
引用类型 object (Array,Function,Date...)//NaN 特殊的值 不是一个数字 console.log(0 / 0); console.log("你好" * 100); //number // var num = 10; // var a = NaN;// 不是一个数字 // console.log(typeof NaN); //number //牢记 console.log(null == undefined); //true //科学计数法 了解 var box = 4.12e9; //e9 9个0 4120000000 // 0.0000412 4.12e-5 console.log(Number.MAX_VALUE); //了解 console.log(Number.MIN_VALUE); //了解 //isNaN() 是数值为false,不是数值 true //掌握 console.log(isNaN("你好")); //true console.log(isNaN(99)); //false console.log(isNaN("99")); //false 字符串的数字 //parseInt 转换整型 //重点 //parseFloat 转换浮点型(保留小数点) //重点 var num = 12.645; console.log(parseInt(num)); //12 var num = "12.345"; console.log(parseFloat(num)); var h = "35.56px"; console.log(parseInt(h)); console.log(parseFloat(h)); var num = prompt("请您输入一个数字?"); console.log(isNaN(num) == false); -
类型转换
//0false,1true //Boolean true/false //1.其他类型转boolean类型 var str = ""; //空字符串 console.log(Boolean(str)); //false var str = "你好"; //空字符串 console.log(Boolean(str));//true var str = "0"; //空字符串 console.log(Boolean(str));//true var str = " "; //空字符串 console.log(str.length);//true console.log(Boolean(str)); //字符串转bool类型,有值为true,没有值为false //2.数值-->Boolean // 0和NaN为false,非0为true var num = 0; console.log(Boolean(num)); //false var num = 1; console.log(Boolean(num)); //true var num = 2; console.log(Boolean(num)); //true var num = -1; console.log(Boolean(num)); //true var num = NaN; console.log(Boolean(num)); //false // null和undefined 始终为false; console.log(Boolean(null)); //false console.log(Boolean(undefined));//false var obj = {} console.log(Boolean(obj)); //true转boolean
- 非空字符串为true,空字符串为false
- 非0为true,0和NaN为false
- null和undefined始终为false
- 对象始终为true,只要不为null
格式化文档:ctrl + shift +F