JS:布兰登艾奇发明
简称JS(javascript),与Java无本质关系
JS是ECMA的体现,ECMA是JS的规范
什么是javascript ?
基于对象和事件驱动的 解释性,程序设计脚本语言。
基于对象:暂时省略..
事件驱动: …
解释性:…
跨平台性:…
JS语法以;结尾,不写也行,浏览器会自动添加,但会消耗系统资源。
JS会忽略多个换行和空格,因此我们可以对代码进行优化。
字面量:不可改变的值,用的较少;
变量:可保存字面量,且可以改变。
标识符:JS中可自主命名的,都叫标识符。(变量名、函数名,属性名)
1)标识符可含数字、字母、_,$;
2)标识符不能以数字开头;
3) 不能是ES中的关键字或保留字;
4) JS中一般标识符使用驼峰命名;
数据类型(基本数据类型,引用数据类型)
1.基本数据类型
number,string,boolean,null,undefined
2.引用数据类型
Object 包含 object、array,function
string:字符串
需要使用""引起来,单双都可以;
字符串使用 \ 作为转义符(转义作用:把一个东西以普通方式展现,不做过多处理,同正则转义);
在字符串中 \n 表示换行 (这是换行符?待定) let str = "我爱你,\n娟";
咋字符串中 \t 表示制表符,相当于按了tab键。
数据类型强制转换
1. toString() ; var a = 123 a.toString(),不会影响原变量,有返回值;
null,undefined没有toString()方法;
2. string() 函数; 将要转化的作为参数,s大写;
可将null,undefined加上"",转为字面量;相对于toString()可转null,undefined;
3. Number() ; 将要转的值放里面,空' '或 ' '里面加了空格转为0;
布尔值 true 转为 1, false转为 0 ;
null类型为number,结果为 0;
undefined............,结果为NAN;
专门处理字符串的parseInt
a = "123px"
a = parseInt(a) // 123
parseInt将字符串中的整数内容取出;
parseFloat()取浮点型
*补充*
对于非string类型使用parseInt会先转成string,然后再操作,因此parseInt(true)结果会是NAN;
**相对于Number(),parseInt()可以转换带px(单位的),但转有些值(true)并不太理想**
4. Boolean() ;Boolean(123) // true;
Boolean(0) // false
Boolean(Infinty) // true
Boolean(null) // false
**总结:**
数字,再除了0和null,都是true;
字符串除了空字符串' ',都是true。字符串里一个空格,也是true;
undefined是false;
转对象也是true。
运算符
typeof()就是一种运算符。
算数运算符?
+ : + 号是比较特殊的运算符,可做字符串拼接。
任何值 与 字符串 做拼接,都会把该值转为字符串,再拼接;
***可以使用 任意数据 + "" *** 这种方法转为字符串串;
***在打印的时候,可以使用 " c = " + c 的方式打印更佳!
- / *
任何 值使用 - / * 运算符时会将值转为number(隐式转换)
2 * null = 0;
*** 可以用一个 字符串 - 0 ,就转化为number; // "123" - 0
- 号可对值进行取反, - 为number负值, + 为正值;
运算符优先级:
先乘除后加减,同数学。
|| && !有一个优先级的表;
优先级一样,就从左往右算;
JS代码块: 只有分组作用
补充:质数(除了1和它本身之间的数,不能整除它本身,那它就是质数)
// 质数: 除了1和他本身,也就是从二开始到它之间的数,若都不能被这之间的数整除,该数是质数
let num = prompt('请输入一个大于1的数')
let flag = true
if(num <= 1){
alert('非法!')
}else{
for(let i = 2; i < num ; i++ ){
if(num % i == 0 ){
// 被一个数整除
flag = false
}
}
if(flag){
alert(num+'是质数')
}
if(!flag){
alert(num+"不是质数!")
}
}