diff --git "a/\351\203\255\350\211\272\346\263\211/20211019-\347\254\2541\346\254\241\347\254\224\350\256\260-\345\210\235\350\257\206JS.md" "b/\351\203\255\350\211\272\346\263\211/20211019-\347\254\2541\346\254\241\347\254\224\350\256\260-\345\210\235\350\257\206JS.md" new file mode 100644 index 0000000000000000000000000000000000000000..ca701feef1a3db98ebf19cfe52c79386f2656e92 --- /dev/null +++ "b/\351\203\255\350\211\272\346\263\211/20211019-\347\254\2541\346\254\241\347\254\224\350\256\260-\345\210\235\350\257\206JS.md" @@ -0,0 +1,47 @@ +# 20211019-第1次笔记-初识JS + +--- + +## 初识JavaScript + +JavaScript是一种运行在浏览器中的解释型的编程语言。 + +- *HTML* 定义网页的内容 +- *CSS* 规定网页的布局 +- *JavaScript* 对网页行为进行编程 + +在Web世界里,只有JavaScript能跨平台、跨浏览器驱动网页,与用户交互。 + +JavaScript 和 Java 是完全不同的语言,不论是概念还是设计 + +## 基础知识 + +JavaScript的语法和Java语言类似,每个语句以;结束,语句块用{...}。但是,JavaScript并不强制要求在每个语句的结尾加;,浏览器中负责执行JavaScript代码的引擎会自动在每个语句的结尾补上;。 + +{...}可以嵌套,形成层级结构 + +以//开头直到行末的字符被视为行注释 + +另一种块注释是用/**...**/把多行字符包裹起来,把一大“块”视为一个注释 + +``` +var A ='1' +//声明变量A并赋值 + +console.log(A) +//输出变量A + +alert('hello') +//弹窗 +``` + +## 补充 + +**一般script标签会被放在头部或尾部**。头部就是里面,尾部一般指里 + +**浏览器解析是自上而下加载解析** + +**将script放在里**,浏览器解析HTML,发现script标签时,会先下载完所有这些script,再往下解析其他的HTML。讨厌的是浏览器在下载JS时,是不能多个JS并发一起下载的。不管JS是不来来自同一个host,浏览器最多只能同时下载两个JS,且浏览器下载JS时,就block掉解析其他HTML的工作[1]。将script放在头部,会让网页内容呈现滞后,导致用户感觉到卡。所以建议将script放在尾部,这样能加速网页加载。 + +**将script放在尾部的缺点**,是浏览器只能先解析完整个HTML页面,再下载JS。而对于一些高度依赖于JS的网页,就会显得慢了。所以将script放在尾部也不是最优解,最优解是一边解析页面,一边下载JS。 + diff --git "a/\351\203\255\350\211\272\346\263\211/20211021-\347\254\2542\346\254\241\347\254\224\350\256\260-\346\225\260\346\215\256\347\261\273\345\236\213\345\222\214\345\217\230\351\207\217.md" "b/\351\203\255\350\211\272\346\263\211/20211021-\347\254\2542\346\254\241\347\254\224\350\256\260-\346\225\260\346\215\256\347\261\273\345\236\213\345\222\214\345\217\230\351\207\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..4789d4e50cff7565190b982153a70a08f289ee3f --- /dev/null +++ "b/\351\203\255\350\211\272\346\263\211/20211021-\347\254\2542\346\254\241\347\254\224\350\256\260-\346\225\260\346\215\256\347\261\273\345\236\213\345\222\214\345\217\230\351\207\217.md" @@ -0,0 +1,131 @@ +# 20211021-第2次笔记-数据类型和变量 + +1.prototype 英[ˈprəʊtətaɪp] 美[ˈproʊtətaɪp] n.原型; 雏形; 最初形态; + +2.function 英[ˈfʌŋkʃn] 美[ˈfʌŋkʃn] n.作用; 功能; 职能; 机能; 典礼; 宴会; 函数; v.起作用; 正常工作; 运转; + +--- + +## 六大数据类型 + +##### **1.Number类型** + +Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。统一用Number表示. + +NaN:非数字类型。特点:① 涉及到的 任何关于NaN的操作,都会返回NaN ② NaN不等于自身。 + +isNaN() 函数用于检查其参数是否是非数字值。 + +```isNaN(123) //false ``` + +```isNaN("hello") //true``` + +##### **2.String类型** + +字符串有length属性。 + +字符串转换:转型函数String(),适用于任何数据类型(null,undefined 转换后为null和undefined);toString()方法(null,defined没有toString()方法)。 + +##### **3.Boolean类型** + +该类型只有两个值,true和false + +##### **4.Undefined类型** + +只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。 + +##### **5.Null类型** + +null类型被看做空对象指针,前文说到null类型也是空的对象引用。 + +##### **6.Object类型** + +js中对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。 + +详见课件:[2.基本语法和数据类型/readme_part2.md · 郭艺泉/JavaScript课程 - 码云 - 开源中国 (gitee.com)](https://gitee.com/gshimmer/javascript_course/blob/master/2.基本语法和数据类型/readme_part2.md) + +## 运算符 + +**逻辑运算符** + +1. && 运算是与运算,只有所有都为true,&&运算结果才是true + +2. || 运算是或运算,只要其中有一个为true,||运算结果就是true + +3. ! 运算是非运算,它是一个单目运算符,把true变成false,false变成true + +**比较运算符** + +1. ==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果 +2. ===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较 + +​ 由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。 + +示例 + +``` +console.log(1/3==(1-2/3)); //返回一个false +console.log(1/3-(1-2/3)<0.0001); //返回一个true +``` + +## 变量 + +变量全部用var声明 + +变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如if、while等。 + +``` +ar a; // 申明了变量a,此时a的值为undefined +var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1 +var s_007 = '007'; // s_007是一个字符串 +var Answer = true; // Answer是一个布尔值true +var t = null; // t的值是null +``` + +使用等号=对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次 + +这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。 + +``` +//JS +var a = 123; // a的值是整数123 +a = 'ABC'; // a变为字符串 +//Java +int a = 123; // a是整数类型变量,类型用int申明 +a = "ABC"; // 错误:不能把字符串赋给整型变量 +``` + +## 数组 + +数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。 + +``` +//通过Array()函数实现 + var arr = new Array (2, 3.14, 'Hello', null, true) ;//数组可以包括任意数据类型(number.boolean.string等) + console.log(arr); +//用[]表示 + var Arr = [2, 3.14, 'Hello', null, true] ; + console.log(Arr); +``` + + 出于代码的可读性考虑,强烈建议直接使用[]。 + +## 对象 + +JavaScript的对象是一组由键-值组成的无序集合 + +JavaScript对象的键都是字符串类型,值可以是任意数据类型 + +``` +var person = { + name: '艺泉', + age: 20, + tags: ['js', 'csharp', 'sql'], + city: 'longyan', + hasCar: true, + zipcode: null +}; +console.log(person.name) +//控制台输出结果为 艺泉 +``` + diff --git "a/\351\203\255\350\211\272\346\263\211/README.md" "b/\351\203\255\350\211\272\346\263\211/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..fd83aa2317ce0e37bf5be7ab8bc55661903417ce --- /dev/null +++ "b/\351\203\255\350\211\272\346\263\211/README.md" @@ -0,0 +1,2 @@ +## 零落成泥碾作尘 +## 只有香如故 \ No newline at end of file